消息断层

xzj 2023-11-30 511

这边多个客户端切账号会出现有些消息在某个客户端丢失情况 就比如Android登录A发消息给b然后退出,然后pc端再登录A与b通讯然后退出,这个过程反复切换几遍客户端登录账号收发消息,然后就会出现有些消息在android客户端上显示了,而pc上是没显示的,或者pc上有android上没有,这个时候把pc上缓存在本地的数据文件夹全删除然后去远程同步就会有,我这边调用 wfc.clearMessages接口然后去刷新聊天界面还是没有获取最新数据,请问下代码内要删除本地聊天记录然后去同步远程消息是用哪个接口?

最新回复 (2)
  • x86 2023-11-30
    引用 2
    demo 上可以复现吗?
  • HeavyRain 2023-11-30
    引用 3

    有可能配置能够解决问题,IM服务上有3个配置,分别如下:

    ##首次登录,是否接收之前的历史消息。
    ## 0 不接收历史消息,只接收 ${message.compensate_time_limit} 毫秒以内的消息,由于服务器没有保存已经收取记录,所以如果有超过这个时间之前未收取的消息也不会收取下来;
    ## 1 接收,会接收 message.max_queue 配置的条数的历史消息。
    ## 本开关仅对原生客户端(移动端,pc端和pad端)有效。web端和小程序端默认拉取最新${message.web_roaming_count}条消息
    message.roaming 1
    
    ##服务器为每个用户缓存的消息数量。这个值改得太大,拉取消息时间变长。
    message.max_queue 3000
    
    ##是否开启拉取远程历史消息。如果为1,客户端在会话内如果本地消息读取完了,可以下拉继续加载在服务器上的该会话的消息;如果为0则不能。
    message.remote_history_message 1

    可以把这几个配置成上面这几个值试试是否可以解决你的问题。获取远程消息的接口是 loadRemoteMessages

返回