2016-08-05 2 views
2

Это образец IQ строфы для получения учетного спискаКак отправить пользовательские IQ stanzas другому пользователю, используя библиотеку smack?

<iq from="[email protected]/pda" id="rr82a1z7" 
type="get"> 
    <query xmlns="jabber:iq:roster"/> 
</iq> 

Из этого standard specification, Iq строфа может быть направлена ​​на конкретный пользователь, установив «TO» атрибут так, что сервер XMPP будет пересылать IQ строфу JID (Full Jabber ID), указанный в "TO" атрибут, check specification

Но когда я запроса IQ строфу, чтобы удовлетворить свои потребности в этом

<iq from="[email protected]/pda" id="rr82a1z7" 
to="[email protected]/Smack" 
type="get"> 
    <UserDetails xmlns="http://www.test.org/User/"> 
     <userName>username</username> 
    </UserDetails> 
</iq> 

Stanza пересылается «алиса @ wond erland.lit ", но я получаю IQ Stanzs с условием ошибки" функция-не реализована "с Openfire Server.

Есть ли способ избавиться от этой ошибки и получить результат?

Я следил за этим tutorial для создания клиентов.

Я мог видеть, как прослеживаются следы проводов из пользовательской Stanza, но не видел, как называется «myIQListener»?

Вопросы:

  • Любые другие промежуточные шаги, которые я не хватает?
  • Любой другой лучший пример?
+0

Для отправки строфы в другой список вам необходимо зарегистрироваться в списке подписчиков. –

+0

@GirishKumar aha, спасибо за информацию, я проверю –

+0

Этот пример работал, это была ошибка опечатки в пространстве имен, на который потребовался целый день, чтобы исправить. еще раз доказывает, что проверка вашего собственного кода для опечаток должна быть первоочередной задачей, а не ощущать неуверенность в знаниях, которые у вас есть :) –

ответ

1

Это, как я решил мой собственной проблемы.

  • Использование Полного трескотня ID (в том числе ресурсов)

  • Как привкус библиотека не понимает пользовательская IQ Строфу реализовать собственный IQProvider, фильтр и добавить его соединение, как именно объяснил here

0

Вам нужно отправить свой собственный <presence type="subscribe" to="[email protected]"/> или должны быть в списке реестром другого пользователя:

См: here

ИЛИ

Deny messages from non-roster users in Openfire

+1

Я проверил и в проводах отслеживания трассировки я мог видеть сервер openfire Xmpp, перенаправляющий запрос на адрес клиента (полный jabber ID), и даже в этой спецификации https://tools.ietf.org/html/rfc6120#page-105 говорится, что «если сообщение не является , отправленным на голый JID учетной записи подключенного клиента.Получив строфу сообщения с адресом «to», сервер ДОЛЖЕН попытаться выполнить маршрут или доставить его предполагаемому получателю (см. Раздел 10 для общих правил маршрутизации и доставки, связанных с XML-строфами) » –

Смежные вопросы