我想收到消息时遇到问题,现在我能收到消息,但有些遗失缺失
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>
答案 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
。