我正在尝试使用 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>
所以它表明我错过了 iq 节中的 from 字段,我想知道如何将 from ='client@server' 放入 iq 节中。我尝试过 asmack 库,包括: asmack-android-7.jar , asmack-android-7-beem.jar asmack-android-16-beem.jar,都失败了。
有人能帮忙吗?非常感谢。
我发现它与接收数据包有关。实际上我已经收到了我需要的数据包,问题是该数据包可能无法在某处被 smack 处理,并且它不会从服务器异常中抛出任何响应。所以我认为问题实际上是没有正确接收传入的数据包。在我的另一个问题中也是如此:
http://stackoverflow.com/questions/14357707/how-to-send-and-listen-to-custom-xmpp-presence-packet-with-asmack-the-library