2012-01-10 15 views
6

Estoy usando Faye para enviar mensajes y funciona bien. Pero quiero recuperar las conexiones activas para un canal dado, y las cosas se comportan de forma un poco diferente: consulte "list active subscribers on a channel".¿Cómo hago una lista de suscriptores activos usando Faye?

Quiero mostrar la lista de los usuarios actuales que conversan en una sala. Intenté hacer esto interceptando el canal /meta/subscribe a través del extensions, pero no estoy muy seguro de cómo enviar datos como el nombre de usuario al servidor.

Un interceptado mensaje a /meta/subscribe se parece a esto:

{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"} 

Sería bueno para enviar "username" => "foo".

Monitoring es interesante también, pero una vez más, parece que no puedo enviar datos específicos al suscribirse.

¿Alguien tiene experiencia con este tipo de problemas?

Respuesta

8

puede adjuntar datos mediante una extensión de cliente:

client.addExtension({ 
    outgoing: function(message, callback) { 
    if (message.channel === '/meta/subscribe') { 
     message.ext = message.ext || {}; 
     message.ext.username = 'username'; 
    } 
    callback(message); 
    } 
}); 

Estos datos serán entonces visibles a su extensión del lado del servidor. Sin embargo, antes de implementar eso, lea este hilo: https://groups.google.com/group/faye-users/msg/53ff678bcb726fc5

4

¿Ha considerado crear un canal para publicar periódicamente a qué canal está suscrito actualmente un usuario? Puede pensarlo como un latido/ping con información de estado adicional, como a qué usuario y canal pueden suscribirse.

Cuestiones relacionadas