Перезапись ответа @ mschonaker, чтобы быть немного более понятной.
Пользователям необходимо подписаться друг с другом и принять заявку на получение подписки. Назовем их Алисой и Боб. Алиса посылает запрос на подписку Бобу:
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('[email protected]');
connection.sendPacket(subscribe);
Когда Боб получает запрос, он утверждает его:
Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo('[email protected]');
connection.sendPacket(subscribed);
Боб также может быть заинтересован в присутствии Алис, поэтому он выписывает ей:
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo('[email protected]');
connection.sendPacket(subscribe);
И Алиса должна одобрить запрос Боба:
Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo('[email protected]');
connection.sendPacket(subscribed);
Section 3.1 of RFC6121 - текущая лучшая ссылка на то, как это работает.
Большое спасибо, это было то, что я искал! – vsm
Если пользователь добавлен из любого другого источника, прослушивает прослушиватель пакетов и отправляет Подписаться на jid, так оно работает, и вы можете видеть подписку как «обе» в списке списка. Если используется тип подписанный, то подписка будет от (запрос отправки списка) и (список, которому отправлен запрос) – Zoombie
Здравствуйте. но где написать этот два кода для подписки на обе стороны –