最近项目发现了一个很诡异的现象,纵使删除了会话且清除了历史消息,一旦卸载重装应用,之前删除的部分消息又莫名其妙的重新收到且显示了,见鬼啦~💀~,在“福尔摩斯·我”的缜密排查下(提工单问了融云的技术支持🌟),真相只有一个。
真相:原来是因为开启了融云的“多设备消息同步”服务,在卸载重装应用时,触发了该服务中的“消息补偿”机制,默认会把当天收发过的消息重新拉取回来。
如果既需要开通“多设备消息同步”服务,又需要卸载重装应用时保证之前删除的会话和历史消息不再显示,该如何处理呢?
方案:
* 删除会话且清除历史消息
* 向该会话发送一条不存储不计数的自定义消息,作用是标识该会话已经被清除
* 卸载重装应用
* 触发“消息补偿”机制,除了收到之前收发过的消息,也会收到标识该会话被清除的自定义消息
* 在接收到该自定义消息时,对该会话再做一遍清除操作,也就是“删除会话且清除历史消息”
注:
“消息补偿”默认是当天,也可以修改这个时间,具体可以咨询融云 https://www.rongcloud.cn/
顺便说一下,他们的技术支持服务还是挺到位的,基本都能得到相对满意的答复,如果觉得问他们比较麻烦,可以自己先在文档 https://docs.rongcloud.cn/v4/ 里面找找,说不定会有惊喜哟~