作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Smack 发送聊天消息。这是代码
Chat chat = connection.getChatManager().createChat("2@coolcast.com", this);
Message _msg = new Message();
_msg.setBody("Hello this is a test message");
chat.sendMessage(_msg);
此消息显示在收件人端,类型为“聊天”。如何将此消息类型更改为自定义字符串,例如“my_custom_string”?
我尝试过这个,但很容易看出为什么下面的方法不起作用
Message.Type _type = Message.Type.fromString("my_custom_string");
_msg.setType(_type);
最佳答案
Message
是smack中的final类,并且它遵循消息Stanza的xmpp协议(protocol),因此您不能修改Message中的Type字段。但我们不能最终放弃,在这里你可以尝试一个小技巧,在 Message
Stanza
中添加自定义扩展,你只需要使用 smack 的提供者架构创建一个 ExtensionElement,然后通过调用 Message
对象上的 addExtension()
方法将其添加到消息包中。
它会是这样的:
<message from="demo@mydomain.com" to="demo2@mydomain.com" type="chat">
<body>Hi this is demo 1</body>
<my_custom_element xmlns="some_name_space" attributr="some_attribute">Some custom message</my_custom_element>
</message>
您可以对 smack 中的任何数据包/节进行多个扩展。
要了解有关 Smack 提供程序架构的更多信息,请关注 this link
关于xmpp - 如何在 Smack 中设置自定义 Message.Type 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21400445/
我是一名优秀的程序员,十分优秀!