我想阅读发送到 ejabberd-business 版本服务器的重新绑定数据包的响应。 Smack库在日志中打印我的数据包,但我不明白如何在我的应用程序中获取该数据包,就像我在processPacket
中获取其他数据包一样。
检查SMACK的代码,它在XMPPTCPConnection->parsePackets()
中失败。因为parsePackets只检查一些特定的标签,例如“message”,“iq”,“presence”等。而我的数据包以“rebind”开头。
我需要能够接收此数据包,因为如果重新绑定不成功,那么我应该开始登录过程。
那么,我是否需要在Smack库代码中进行更改?或者有没有办法处理这个没有重新编译 SMACK ?
我想读的数据包:
<rebind xmlns='my:namespace:rebind'/>
答案 0 :(得分:2)
事实上,Ejabberd商业版(eBE)确实实现了一个自定义的“重新绑定”功能,类似于会话管理中的“简历”功能(无论如何,ejabberd支持XEP-0198)。
我刚写了a small patch,将此功能添加到Smack 4.2.0(写作时刻的主分支)。希望它对您的客户开发有所帮助。请注意,您应该重复使用Smack xmpp tcp连接才能使此功能生效。