comment ajouter un roster avec de l'abonnement en mode “à la fois”
je suis en utilisant smack 3.1.0, et lorsque j'ajoute un fichier,je ne peux pas obtenir l'abonnement "à la fois". qui peut m'aider?
ci-dessous mon code:
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
Roster roster = connection.getRoster();
roster.createEntry("[email protected]","me",null)
après l'exécution de code, je l'ai observé dans openfire l'abonnement est "pour"
OriginalL'auteur snowway | 2011-04-27
Vous devez vous connecter pour publier un commentaire.
Réécriture @mschonaker, la réponse à être un peu plus clair.
À la fois les utilisateurs doivent s'abonner à chaque autre et accepter la demande d'abonnement qu'ils ont reçu. Nous allons les appeler Alice et Bob. Alice envoie une demande d'abonnement à Bob:
Quand Bob reçoit la demande, il l'approuve:
Bob pourriez également être intéressé par la présence d'Alice, de sorte qu'il s'abonne à elle:
Et Alice doit approuver Bob demande:
L'article 3.1 de RFC6121 est la meilleure référence pour savoir comment cela fonctionne.
si j'utilise Souscrit ce que j'ai à utiliser JID ici souscrit.setTo(jid); je suis en mesure d'ajouter une entrée pour mon compte, mais je ne reçois pas la présence de l'entrée.dites-moi ce que j'ai à faire pour cela.
J'espère que je fait plus clair.
Je suis doning les choses de la même manière, mais ne pas obtenir toute notification de souscription. Svp un coup d'oeil stackoverflow.com/questions/16815531/...
excellent exemple @JoeHildebrand vraiment apprécié la réponse. Et je voudrais poser une question à mon scénario, c'est que lorsque l'utilisateur s'abonner l'utilisateur B ensuite, lorsque l'utilisateur B souscrites par l'utilisateur alors automatiquement l'utilisateur B s'abonner l'utilisateur a u sont l'obtention de ce que j'essaie de dire.
OriginalL'auteur Joe Hildebrand
À la fois les utilisateurs doivent souscrire les uns aux autres. Par l'envoi d'une présence d'abonnement strophe. Dans Smack:
L'article 3.1 de la RFC6121 vous donnera les détails sémantiques.
Si l'utilisateur est ajouté à partir de toute autre source, écouter les paquets auditeur et envoyer Abonnez-vous à la jid, c'est la façon dont il fonctionne, et vous pouvez voir d'abonnement "à la fois" dans la liste liste. Si le type de l'abonné, l'abonnement sera de (liste d'envoi de la demande) et à(liste à qui la demande est envoyée)
Bonjour. mais où écrire ce code deux pour vous abonner à la fois côté
RFC3921 est rendu obsolète par RFC6121. Aussi, votre code n'a pas beaucoup de sens, puisque vous vous abonnez, de ne pas se désinscrire, et la "présence" n'est pas une variable actuellement dans le champ d'application.
excellent exemple vraiment apprécié la réponse. Et je voudrais poser une question à mon scénario, c'est que lorsque l'utilisateur s'abonner l'utilisateur B ensuite, lorsque l'utilisateur B souscrites par l'utilisateur alors automatiquement l'utilisateur B s'abonner l'utilisateur a u sont l'obtention de ce que j'essaie de dire.
OriginalL'auteur mschonaker
Bon, j'ai peiné dur dans ce pour un couple de jours et a finalement obtenu les choses de travail. Merci @Joe Hildebrand, votre réponse m'a mis sur la piste de résoudre ce problème. J'ai mis en oeuvre avec un manuel de mode d'abonnement (ie. l'utilisateur doit accepter une autre demande de l'utilisateur manuellement).
Le serveur continue à pousser demande de s'abonner à l'utilisateur (login) si l'utilisateur n'a pas envoyé un abonné ou non abonné en arrière. Donc ce que vous pouvez faire est de sauver les entrants abonnez-vous les demandes localement dans une liste et l'afficher comme une "demande d'ami" liste de de manuel d'accepter/rejeter. Si votre application est redémarrée (et donc re-connecte à un serveur), le serveur va pousser abonnez-vous demande à nouveau.
Voilà comment cela fonctionne:
User1 vérifie si User2 est dans Utilisateur1 fichier. Utilisateur2 est dans Utilisateur1 fichier. User1 envoie en retour un abonné présence de User2 (User2 > User1 abonnement complet).
OriginalL'auteur Bam
Si vous utilisez d'ouvrir le feu serveur, vous pouvez également utiliser De Service de l'utilisateur du plugin qui permettra de créer des liste avec abonnement...
OriginalL'auteur Ram
Même problème j'étais en face, mais j'ai eu la solution comment s'abonner set "à la fois"
Ci-dessous est l'envoi de l'abonnement de l'utilisateur, lors de l'ajout de l'utilisateur
et la Réception de fin de mettre ci-dessous la méthode dans la classe de connexion et presenceChanged est la méthode par défaut de RosterListener.
OriginalL'auteur Vinod Makode