gpt4 book ai didi

xmpp - 如何在 Smack 中设置自定义 Message.Type 字符串?

转载 作者:行者123 更新时间:2023-12-02 04:51:02 25 4
gpt4 key购买 nike

我正在尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com