0

我正在尝试使用 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
4

1 回答 1

0

很抱歉误导了你!该错误是由我的扩展提供程序引起的,它导致解析数据包进入无限循环,从而导致服务器异常无响应。

于 2013-01-24T08:58:18.793 回答