删除消息后,卸载重装应用,删除的消息又出现了

程序员小五
• 阅读 576

问题原因: 如果开启了“多设备消息同步”服务,卸载重装应用,会触发“消息补偿”机制,默认会拉取到补偿时间内收发过的消息,如果删除的消息是在补偿时间内收发的,也会被拉取回来。解决思路: 1. 在删除消息后,向会话发一条自定义消息,作为清除消息的标识。 2. 当卸载重装后,如果在消息监听中监听到第 1 步中的自定义消息,再删除一次消息,如需删除会话,也要再执行一次。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
(绝对有用)iOS获取UUID,并使用keychain存储
UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了,如果有更好的解决办法,欢迎留言。(我整理的解决办法的参
Stella981 Stella981
4年前
RabbitMQ小技巧
导读在使用RabbitMQ消息中间件时,因为消息的投递是异步的,默认情况下,RabbitMQ会删除那些无法路由的消息。为了能够检出消息是否顺利投递到队列,我们需要相应的处理机制。今天就来验证一下相关的验证机制。!RabbitMQ小技巧确定消息投递情况RabbitMQ小技巧确定消息投递情况(https://imgblog.csdnim
Stella981 Stella981
4年前
RabbitMQ 三种方式的TTL
TTL说明RabbitMQ支持三种方式PerQueueMessageTTL(为进入队列的每一条消息设置一个TTL)QueueTTL(队列的TTL,如果在设置的TTL时间内,没有消费者连接,没有消息发送,RabbitMQ会默认其是将要抛弃不用的,会考虑在TTL到期后删除掉该队列)PerM
Stella981 Stella981
4年前
RabbitMq学习(二)RabbitMQ的消息确认机制
一.为什么有消息确认机制在RabbitMq中,一个消息从产生到最终的消息接受,中间大致会有三个环节,首先是消息到达交换机、然后是消息通过交换机到达队列,最后消费者消费绑定的队列消息。 但是在这个过程中,如果出现网络或者系统的异常,就会导致消息不能被正常消费。如果不能正常消费消息,会造成两方面的问题。 1.1在服务端消息到
程序员小五 程序员小五
1年前
删除消息后,卸载重装应用,删除的消息又出现了
问题描述同时删除本地消息和服务端历史消息后,卸载重装应用或者换设备登录,删除的消息重新出现。原因分析针对单聊会话、群聊会话,如果通过任何接口以传入时间戳的方式删除远端消息,服务端默认不会删除对应的离线消息补偿(该机制仅会在打开多设备消息同步开关后生效)。此
程序员小五 程序员小五
11个月前
融云IM干货丨IM服务聊天室中离线消息同步需要多久一次?
关于离线消息同步的频率,根据搜索结果,这里有几个关键点可以提供参考:离线消息的获取是自上而下的方式(按时间序),客户端一次获取200条离线消息,如果离线消息过多,则会分页多次拉取。客户端拉取离线消息时,需要带上当前客户端缓存的消息的最大时间戳,服务器会根据
程序员小五 程序员小五
10个月前
融云IM干货丨IM服务消息推送,客户端更新后,如何验证消息是否被成功接收?
客户端更新后,验证消息是否被成功接收可以采取以下几种方法:确认机制(ACK):客户端在成功接收并处理消息后,向服务端发送确认信号(ACK)。如果服务端在一定时间内没有收到ACK,可以认为消息未被成功接收,服务端可以进行重试发送。心跳机制:客户端和服务端定期
程序员小五 程序员小五
1年前
如何清理会话消息及清除 iOS IM SDK 缓存图片?
融云SDK中新增了deleteMessages方法,用于删除某个会话中的所有消息,同时会整理压缩数据库,减少占用空间,此方法不可频繁循环调用。方法如下:/!删除某个会话中的所有消息@paramconversationType会话类型,不支持聊天室@para
程序员小五 程序员小五
1年前
即时通讯的核心功能点有哪些?
融云即时通讯的核心功能点包括以下几点:1、支持各种消息类型内置文本、表情、图片、语音、位置、动态表情、小视频、文件等各种消息类型,也可通过自定义消息功能定制自己的消息类型。2、消息云端存储开通单群聊、聊天室消息云端存储功能,在任何设备上打开应用均可同步拉取
程序员小五 程序员小五
1年前
删除远端消息, 重进会话仍然取回已删除的消息
用户调用删除函数,服务器不会判断对应的sentTime是否存在,仅仅是使用sentTime直接进行消息删除,然后返回操作成功;用户删除远端消息时,需要保证sentTime的合法性(void)deleteRemoteMessage:(RCConversati