如何在 android 中编辑和删除 XMPP 中的特定消息?

Posted

技术标签:

【中文标题】如何在 android 中编辑和删除 XMPP 中的特定消息?【英文标题】:How to edit and delete particular message from XMPP in android? 【发布时间】:2019-07-18 13:10:45 【问题描述】:

我正在开发一个 Voip 应用程序我正在实现 XMPP 聊天功能。我有自己的 jabber 服务器来实现 XMPP 服务,我正在使用这个库 https://github.com/siacs/Conversations。在我的安卓应用程序中。该库提供除删除和编辑消息外的所有聊天功能。现在我想实现从终端到终端用户的编辑和删除特定消息。这个库只提供编辑最后一条消息。

提前致谢,我们将不胜感激。

【问题讨论】:

【参考方案1】:

我还在我的项目中使用 XMPP 实现了聊天,这可以帮助你:

https://xmpp.org/extensions/xep-0308.html

用户发送错误消息¶

<message to='juliet@capulet.net/balcony' id='bad1'>
  <body>But soft, what light through yonder airlock breaks?</body>
</message>

用户更正消息并发送¶

<message to='juliet@capulet.net/balcony' id='good1'>
  <body>But soft, what light through yonder window breaks?</body>
  <replace id='bad1' xmlns='urn:xmpp:message-correct:0'/>
</message>

删除:

如果客户端或服务实现消息删除,它必须按照指定在其服务发现信息特性中指定 'urn:xmpp:message-delete:0' 特性在服务发现 (XEP-0030) [2] 和实体能力 (XEP-0115) [3] 中指定的实体能力配置文件中。

要检查您的客户端是否支持删除消息,请发送此查询:

http://jabber.org/protocol/disco#info'/>

如果响应包含此 'urn:xmpp:message-delete:0' 则它​​支持并且您可以通过以下代码删除消息:

http://legastero.github.io/customxeps/extensions/message-delete.html

<message to='room@muc.example.com' id='remove1'>
  <remove id='bad1' xmlns='urn:xmpp:message-delete:0'/>
</message>

remove id=是你要删除的消息的id

【讨论】:

感谢您的回复,当我编辑最后一条消息时,我收到了这种类型的日志..... I/System.out: Message Packet Received::::: 此消息已编辑正文> 嘿,我想删除或编辑特定的随机消息。我已经在执行编辑最后一条消息了。 对于删除,我想首先你的服务器应该支持删除,比如检查从你用于 XMPP 的软件中启用删除的选项 我正在使用整个对话库,在服务器端,我是唯一一个创建 jabber 帐户并使用库代码注册的人。现在我被这个库困住了,因为其中没有删除和编辑特定方法的方法。 通过发送上面代码共享的xml来检查是否支持删除

以上是关于如何在 android 中编辑和删除 XMPP 中的特定消息?的主要内容,如果未能解决你的问题,请参考以下文章

Android XMPP 电池寿命

如何在 iOS 中通过 xmpp 删除单个聊天?

如何使用 Openfire 和 XMPP 在 Android 中制作聊天机器人应用程序

如何在 xmpp android 中设置和获取状态

如何在 iOS 中使用 XMPP 删除或退出特定群聊

在 xmpp for android 中获取生日、性别、手机