La manipulation de présence dans la Strophe.js-fondé d'application de chat
Est-il une solution existante qui fournit à la présence de manutention pour l'application de chat basé sur Strophe.js?
J'ai de chat simple demande fondée sur Strophe.js. Je voudrais montrer seulement les utilisateurs qui sont en ligne et dynamicaly modifier la liste. Je me demandais si il n'y a aucune solution existante (éventuellement Strophe plugin) qui s'occupe de cela. Si il n'y a pas une telle chose, quel est le meilleur/le plus simple à mettre en œuvre?
OriginalL'auteur Pavel S. | 2012-08-21
Vous devez vous connecter pour publier un commentaire.
Par l'aide de la Strophe, vous pouvez envoyer un QI de votre serveur que vous demande votre liste de liste de, de cette façon:
Ce serait interroger votre serveur pour vos équipes et aurait retourne un objet contenant votre liste de liste de. Vous pouvez alors parcourir vos listes comme:
Notez que j'ai ajouté un
on_presence
de rappel etconnection.send($pres())
. Le but est de sorte que vous pouvez obtenir des mises à jour de vos contacts si jamais leur présence le changement. Votre présence callback va alors ressembler à ceci:Vous pouvez vérifier l'Strophe.js la documentation pour plus d'informations. Avec sendIQ vous pouvez ajouter d'autres paramètres, comme l'erreur de rappels, etc.
Espérons que cette aide!
Edit:
Pardonnez-moi, j'ai fait une erreur.
$(presence).attr('type')
ne vous donne pas si le contact est en ligne ou pas, mais il vous donne le type de présence. La présence type est en fait le signal qui vous indique si un contact s'il n'est pas disponible ou si vous êtes abonné, l'abonné, etc à votre contact.Dans le XMPP Documentation:
Il est
$(presence).find("show")
vous donne le statut de votre contact. À partir de la documentation:Salut Pavel, j'ai mis à jour ma réponse parce que j'ai réalisé, j'ai fait une erreur quand j'ai lu votre commentaire. J'ai ajouté les réponses à vos questions, et aussi un lien vers le protocole XMPP docs.
Great job, l'homme. Merci beaucoup!
J'ai suivi vos extraits de code ci-dessus, je n'arrive pas à obtenir une liste de ma liste. Qu'est-ce que je pourrais probablement faire de mal
il a été quelques années depuis que j'ai vérifié en arrière, vous avez le
return true
à la fin de votre gestionnaire comme la réponse ci-dessous mine souligné. 🙂OriginalL'auteur Vincent Paca
Une chose importante à noter, c'est que comme Est-il juste que la Strophe.addHandler ne lit que le premier nœud de réponse? dit, Si vous voulez lire plus que la première présence nœud, assurez-vous de retourner la valeur true à la fin, parce que: "Le gestionnaire doit retourner true si c'est pour être invoqué à nouveau; retourner false va supprimer le gestionnaire après il retourne."
Donc la solution que j'ai utilisée devrait ressembler à quelque chose comme ceci:
J'ai raté le retour de vrai. Merci @RamRovi cela a résolu mon problème 🙂
OriginalL'auteur RamRovi