Comment puis-je lister les abonnés actifs utilisant Faye?
-
26-10-2019 - |
Question
J'utilise Faye pour l'envoi des messages et il fonctionne bien. Mais je veux récupérer les connexions actives pour un canal donné, et un peu les choses se comportent différemment: Voir « liste d'abonnés actifs sur une chaîne ».
Je veux afficher la liste des utilisateurs actuels discutent dans une chambre. J'ai essayé de le faire en interceptant le canal /meta/subscribe
via extensions mais je ne suis pas tout à fait sûr comment envoyer des données comme le nom d'utilisateur au serveur.
Un message intercepté ressemble /meta/subscribe
comme ceci:
{"channel"=>"/meta/subscribe", "clientId"=>"50k233b4smw8z7ux3npas1lva", "subscription"=>"/comments/new", "id"=>"2"}
Il serait agréable d'envoyer "username" => "foo"
.
surveillance est intéressant aussi, mais encore une fois, il semble que je ne peux pas envoyer des données spécifiques sur désinscription.
Quelqu'un at-il une expérience avec ce genre de questions?
La solution
Vous pouvez joindre des données en utilisant une extension côté client:
client.addExtension({
outgoing: function(message, callback) {
if (message.channel === '/meta/subscribe') {
message.ext = message.ext || {};
message.ext.username = 'username';
}
callback(message);
}
});
Ces données seront ensuite visibles sur votre extension côté serveur. Toutefois, avant de mettre en œuvre que, lisez ce fil: https://groups.google.com/group/faye -utilisateurs / msg / 53ff678bcb726fc5
Autres conseils
Avez-vous envisagé de créer actuellement souscrit un canal pour la publication périodique quel canal un utilisateur? Vous pouvez penser comme un battement de coeur / ping avec des informations d'état supplémentaires telles que l'utilisateur et le canal, ils peuvent être souscrites.