我目前正在对启用了XEP-0198的XMPP服务器使用asmack。
我试图从asmack库启用此功能,但我找不到有关如何执行此操作的任何信息,因此关注http://xmpp.org/extensions/xep-0198.html我知道我必须通过发送启用此功能:
<enable xmlns='urn:xmpp:sm:3'/>
但我不知道如何做到这一点,因为这不是一节。任何帮助表示赞赏。
编辑: 正如dant3指出的那样,Smack不支持XEP-0198,但是我仍然希望通过Smack发送简单的XML来启用它,我只是不知道如何做到这一点。
答案 0 :(得分:0)
看起来像是do not have XEP-0198 implementation。所以,你无法启用它。
如果你为smack贡献它会很好(因此 - 对于asmack)。
修改强>
Smack 4.1.0现在支持XEP-0198流管理。有关详细信息,请参阅此wiki page。
答案 1 :(得分:-1)
我通过创建自己的包类型来解决它:
public class MyPacket extends Packet
{
private String content = "";
public MyPacket(String content)
{
this.content = content;
}
@Override
public String toXML()
{
return this.content;
}
}
我在构造函数中传递xml然后关闭它:
MyPacket p = new MyPacket("<enable xmlns='urn:xmpp:sm:3'/>");
this.connection.sendPacket(p);
绝对不是世界上最好的代码,但它有效。