WuKongIM / WuKongIM

不只是即时通讯(IM)
https://githubim.com
Apache License 2.0
1.96k stars 287 forks source link

如何删除某个频道的某条消息 #142

Closed yang961226 closed 2 months ago

yang961226 commented 3 months ago

希望实现消息删除、清空功能

tangtaoit commented 3 months ago

目前WuKongIM不支持删除消息,但是可以通过业务端做到消息删除和清空,思路如下:

删除单条消息

  1. 前端删除消息的时候,调用自己的业务端接口,记录下被删除的messageId
  2. 从WuKongIM获取消息列表的时候,通过messageId匹配本地是否被删除,如果被删除标记为is_deleted=1
  3. 前端遇到is_deleted=1的不展示,即可达到删除的目的。(这里为了安全也可以将payload内容置空)

清空消息

  1. 前端清空消息的时候,记录当前聊天的最新messageSeq,表示从messageSeq以前的消息都已删除。
  2. 调用WuKongIM获取消息的时候,可以给接口的开始的messageSeq为记录的messageSeq,这样messageSeq以前的消息将不会返回。
JayeHao commented 3 months ago

通过悟空API获取消息一页有10条,其中有5条消息是被标记删除的(撤回),这样看起来会非常奇怪

tangtaoit commented 3 months ago

通过悟空API获取消息一页有10条,其中有5条消息是被标记删除的(撤回),这样看起来会非常奇怪

返回的结果还是10条,只是is_deleted=true