asmack pubsub getItems 错误

Posted

技术标签:

【中文标题】asmack pubsub getItems 错误【英文标题】:asmack pubsub getItems error 【发布时间】:2013-01-14 13:27:58 【问题描述】:

我正在尝试使用 Pubsub 节点将一些信息发布到服务器。不幸的是,我未能检索到之前发布的节点。与以下链接中的问题非常相似: http://community.igniterealtime.org/message/199690#199690

具体来说,sn-ps的代码如下:

 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://***.com/questions/14357707/how-to-send-and-listen-to-custom-xmpp-presence-packet-with-asmack-the-library

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于asmack pubsub getItems 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 asmack 共享位置

使用 smack 读取 pubsub 中的传入消息数据包

Asmack/Openfire 401 错误

在android中使用asmack获取错误的请求400错误

aSmack 多用户房间创建错误

带有 aSmack 库的 XMPP 出现错误?