如何在消息 asmack/smack 中添加其他数据?

Posted

技术标签:

【中文标题】如何在消息 asmack/smack 中添加其他数据?【英文标题】:how to add additional data in message asmack/smack? 【发布时间】:2014-09-17 05:40:05 【问题描述】:

我正在使用 (a)Smack 和 Openfire 服务器发送消息。我成功地能够使用消息正文发送消息。现在我需要在消息中发送一些额外的数据。我不想将字符串附加到数据中,然后在接收后处理它。还有其他方法吗?或带有扩展名?

【问题讨论】:

【参考方案1】:

使用自定义PacketExtension。

【讨论】:

【参考方案2】:

您可以使用 setProperty 和 getProperty 方法。

发送端:

Message msg=new Message("jid", Message.Type.chat);
msg.setProperty("key", "value");
connection.sendMessage(msg);

在接收端:

PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
    packetListner=new PacketListener() 
        public void processPacket(Packet packet) 

            Message message = (Message) packet;
            String myData=message.getProperty("key").toString();
        
    ;
    connection.addPacketListener(packetListner, filter);

【讨论】:

您应该添加更多信息 - 特别是它的外观以及与接受的答案相比有什么优势。 我不知道 smack - 所以我无法确定您的答案是否正确。但是,如果答案仅包含一个句子,这通常是低质量的标志 - 这就是为什么您的答案在低质量队列中等待审核的原因。现在您的答案的重要性要高得多,我认为这会对遇到同样问题的人有所帮助。 其实我第一次回答时堆栈溢出,下次我会在回答时记住这件事 消息没有 get/setProperty 方法,使用扩展代替 Flow 的答案中的具体说明

以上是关于如何在消息 asmack/smack 中添加其他数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在安卓本地保存聊天记录?

如何将二进制数拆分为 6 位二进制数并在 C 中添加其他位?

MFC 中,按钮和其他(比如:图片框、列表框)控件怎么响应鼠标移动消息?

添加到其他人服务器的 Discord Bot 如何获取他们希望它发送消息的通道 ID?

如何在选择框更改JavaScript值时添加和删除消息?

如何在没有 id 的 discord.py 中添加对消息的反应