¿Cómo enumero los suscriptores activos usando Faye?
-
26-10-2019 - |
Pregunta
Estoy usando Faye Para enviar mensajes y funciona bien. Pero quiero recuperar las conexiones activas para un canal determinado, y las cosas se comportan de manera un poco diferente: ver "Lista de suscriptores activos en un canal".
Quiero mostrar la lista de usuarios actuales que chatan en una habitación. Traté de hacer esto interceptando el /meta/subscribe
canal extensiones Pero no estoy muy seguro de cómo enviar datos como el nombre de usuario al servidor.
Un mensaje interceptado para /meta/subscribe
Se ve como esto:
{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"}
Sería bueno enviar "username" => "foo"
.
Vigilancia También es interesante, pero de nuevo, parece que no puedo enviar ningún datos específicos a la suscripción.
¿Alguien tiene experiencia con este tipo de problemas?
Solución
Puede adjuntar datos utilizando una extensión del lado del 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 visibles para 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
Otros consejos
¿Ha considerado crear un canal para publicar periódicamente a qué canal se suscribe actualmente un usuario? Puede pensar en ello como un latido/ping con información de estado adicional, como a qué usuario y canal pueden suscribirse.