Я пытаюсь опубликовать некоторую информацию на сервере, используя узлы Pubsub. К сожалению, мне не удалось получить узел, опубликованный ранее. Просто очень похоже на проблему в следующей ссылке: http://community.igniterealtime.org/message/199690#199690
чтобы быть конкретным, фрагменты кода выглядят следующим образом:
try {
LeafNode node = mPubsub.getPEPNode(USEINFONODE,mFrom);
if(null != node){
List<Item> items = node.getItems();
Log.i("items",items.toString());
}
} catch (XMPPException e) {
Log.e("userInfoExtension","error : and the error is " + e.toString());
}
и ошибка вывода - нет ответа от сервера.
вывод отладки таков:
<iq id="B9tI0-4" to="pubsub.mymachine" type="get"><query xmlns="http://jabber.org/protocol/disco#info" node="theNode"></query></iq>
<iq id="B9tI0-5" to="pubsub.mymachine" type="get"><pubsub xmlns="http://jabber.org/protocol/pubsub"><items node='theNode'/></pubsub></iq>
Однако, согласно упомянутой выше ссылке, ожидаемая строфа iq должна быть такой:
<iq type='get'
from='notifyserver@mymachine'
to='pubsub.mymachine'
id='items1'>
<query xmlns='http://jabber.org/protocol/disco#items'
node='theNode'/>
</iq>
Итак, это показывает, что я пропускаю поле from в строфе iq, мне интересно, как я могу поместить from = 'client@server' в строфу iq. Я пробовал библиотеки asmack, в том числе: asmack-android-7.jar, asmack-android-7-beem.jar asmack-android-16-beem.jar, все потерпели неудачу.
Может кто-нибудь помочь с этим? Большое спасибо.
Я обнаружил, что это как-то связано с получением пакета. на самом деле я получил пакет, который мне был нужен, проблема в том, что пакет может не быть обработан где-то по шлепку, и он не выдаст никакого ответа из-за исключения сервера. поэтому я думаю, что проблема на самом деле в неправильном получении входящего пакета. так же и в моем другом вопросе:
http://stackoverflow.com/questions/14357707/how-to-send-and-listen-to-custom-xmpp-presence-packet-with-asmack-the-library