Наличие XMPP Подписка

В моем приложении, когда я отправляю запрос любому другу, используя этот код..

try {               
                roster.createEntry(idExtension, nickname, null);
                roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
                Presence subscribe = new Presence(Presence.Type.subscribe);
                subscribe.setTo(idExtension);               
                connection.sendPacket(subscribe);


                return true;
            } catch (XMPPException e) {
                System.err.println("Error in adding friend");
                return false;
            }

затем подписка говорит «НЕТ» в обоих списках друзей.

Но это должны быть «ДО» и «ОТ».

Но если для того же процесса я использую этот код -

try {               
                roster.createEntry(idExtension, nickname, null);
                roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
                Presence subscribed = new Presence(Presence.Type.subscribed);
                subscribed.setTo(idExtension);              
                connection.sendPacket(subscribed);


                return true;
            } catch (XMPPException e) {
                System.err.println("Error in adding friend");
                return false;
            }

Тогда это дает мне правильный результат, который я должен получить в предыдущем случае.

Скажите, пожалуйста, почему я не получаю то же самое в режиме ПОДПИСКИ.

Спасибо


person Gaurav Arora    schedule 18.10.2012    source источник
comment
привет Гаурав, удалось передать файл? если да, то, пожалуйста, помогите мне сделать то же самое. я застрял с этой передачей файлов.   -  person Juned    schedule 12.11.2012
comment
@juned Нет, брат, я оставил это в стороне. Теперь я перешел к другим функциям. Пожалуйста, помогите мне в этом - stackoverflow.com/questions/13338515/   -  person Gaurav Arora    schedule 12.11.2012
comment
да, конечно, на самом деле я нашел вас в блоге Гарриджоя, поэтому я подумал, что вы покончили с передачей файлов. В любом случае без проблем :)   -  person Juned    schedule 12.11.2012
comment
@juned Вы нашли решение моей проблемы ?? который я упомянул в приведенной выше ссылке ??   -  person Gaurav Arora    schedule 12.11.2012
comment
Нет, на самом деле я не реализовал эту функцию, но я предлагаю вам узнать, как обновить список друзей, чтобы увидеть недавно добавленного пользователя в списке друзей. Сделайте это, используя сервис в фоновом режиме, и обновите его соответствующим образом. Это моя общая мысль, но как только я поработаю над этим, я дам вам полное решение.   -  person Juned    schedule 12.11.2012


Ответы (1)


Я предполагаю, что вы не понимаете значение шрифта в Присутствии.

подписаться -- отправитель желает подписаться на присутствие получателя.

подписался -- отправитель разрешил получателю получать информацию о своем присутствии.

Поэтому, когда вы отправляете первый, вы просите пользователя позволить вам подписаться на его события присутствия, и до тех пор, пока он не разрешит вам это сделать, тип подписки - none.

Во втором случае вы разрешили пользователю подписаться на ваше присутствие, то есть вы даете ему разрешение прослушивать ваше присутствие, и таким образом вы получаете тип подписки.

person Harry Joy    schedule 19.10.2012
comment
В самом первом случае, когда я отправляю запрос на подписку, я использую SUBSCRIBE, а затем пользователю приходит уведомление. На кнопке разрешения этого уведомления я меняю присутствие на ПОДПИСКА, но в списке подписки на открытый огонь я вижу только КОМУ/ОТ. Но я хочу ОБА статуса. Как можно добиться того же. - person Gaurav Arora; 20.10.2012
comment
Вы должны сделать эту процедуру с обоих концов. В этом случае будет иметь место всего 4 присутствия, из которых 2 будут типа «Подписаться», а другие 2 будут «Подписаны». - person Harry Joy; 22.10.2012
comment
Могу ли я поговорить с вами в течение 10 минут? - person Gaurav Arora; 22.10.2012
comment
I шаг - тот, кто хочет добавить, отправит - пакет Subscribe II шаг - тот, кто его получит, отправит - пакет SUBSCRIBED. Что после этого будет??? - person Gaurav Arora; 22.10.2012
comment
затем выполните обратный процесс: человек, получивший запрос, теперь отправит SUBSCRIBE, а другой человек ответит SUBSCRIBED. - person Harry Joy; 22.10.2012
comment
Извини, что я немного запутался, братан. Пусть X хочет добавить Y 1-й шаг: - X отправит пакет SUSCRIBE 2-й шаг: - После получения Y отправит пакет SUBSCRIBED Теперь, пожалуйста, проверьте мои 2 шага и напишите 3-й и 4-й Извините за неудобства, братан. ответьте, пожалуйста - person Gaurav Arora; 23.10.2012
comment
Теперь 3-й шаг Y отправит SUBSCRIBE на X, а 4-й шаг при получении X отправит SUBSCRIBED на Y. - person Harry Joy; 23.10.2012
comment
давайте продолжим это обсуждение в чате - person Gaurav Arora; 23.10.2012
comment
Пожалуйста, помогите мне в этом - stackoverflow.com/questions/13338515/ - person Gaurav Arora; 12.11.2012
comment
Здравствуйте, Гаурав и Гарри, если вы сделали это полностью, не могли бы вы поделиться полным четырехэтапным механизмом подписки. Я новичок в этом и не понимаю, как правильно его реализовать. Пожалуйста, помогите мне. Большое спасибо. - person Pawan Gupta; 09.10.2013