MessageListener没有收到完整的消息ASMACK Android

时间:2014-05-28 05:45:21

标签: android asmack message-listener

我想收到消息时遇到问题,现在我能收到消息,但有些遗失缺失

    class MyMessageListener implements MessageListener {

    @Override
    public void processMessage(Chat chat, Message message) {
        Util.DebugLog("message->"+message.toXmlns());

    }

}

我得到的是

  <message to="2@buzoo.biz" type="chat" from="1@buzoo.biz/ff3b2485"><body asdf="asdf">aaa</body></message>

内部消息中的talk_id和聊天类型丢失。

这是我希望收到消息时想要的

  <message to="2@buzoo.biz" type="chat" talk_id="304" chat_type="0" from="1@buzoo.biz/ff3b2485"><body asdf="asdf">aaa</body></message>

1 个答案:

答案 0 :(得分:0)

虽然XMPP并未严格禁止通过向自定义元素(在您的案例中为message)添加自定义属性来扩展节,但最好将自定义数据添加为额外元素。这就是大多数XMPP扩展的设计方式。

所以而不是

<message to="foo@bar.com" type="chat" myCustomData="myValue"><body>Hello!</body><message>

你有

<message to="foo@bar.com" type="chat"><body>Hello!</body><myExtension myCustomData="myValue"/></message>

然后你只需要为myExtension编写一个Provider并将其注册到Smack的ProviderManager