Bin*_*oot 10 java xml xmpp smack
我正在使用Java中的Smack API连接到我的XMPP服务器.
我想发送一个这样的自定义消息包:
<message to="you@MyServer.com" type="chat" MYFIELD="custom stuff">
<body> hi </body>
<CUSTOM_STANZA A="..." B="...">
C="..."
D="..."
</CUSTOM_STANZA>
</message>
Run Code Online (Sandbox Code Playgroud)
我猜我创建了我自己的Packet,它在它的toXML()方法中返回了这个XML.但这似乎不起作用.
任何帮助,将不胜感激.
我不知道你为什么要在邮件中添加自定义属性.这在客户端上会出现问题,并且可能会导致服务器上出现问题,因为它与消息节的架构不匹配.
另一方面,消息内容很容易处理,因为@Femi用数据包扩展说.您需要创建一个扩展PacketExtension的MyExtension,该类中的toXML()将返回您的自定义节.
您可以通过以下方式创建和发送自定义消息:
Message message = new Message();
message.addExtension(new MyExtension());
chat.sendMessage(message);
Run Code Online (Sandbox Code Playgroud)
要阅读该节,您需要注册一个提供程序,该提供程序将创建并返回您的自定义PacketExtension.您应该看看EmbeddedExtensionProvider,因为它为您处理标记解析,从而简化了过程.
您需要定义一个应该实现 ExtensionElement 的自定义类(如 @ Flow提到的)
此答案中提供了产生以下节的非常详细的解释
<message id='923442621149' type='chat'><body>shanraisshan</body>
<reply xmlns='shayan:reply' rText='this is custom attribute'/>
</message>
Run Code Online (Sandbox Code Playgroud)
其中reply是一个自定义扩展,其中包含
默认 xmpp 命名空间列表可在XMPP 官方网站上找到
| 归档时间: |
|
| 查看次数: |
14384 次 |
| 最近记录: |