集成融云 SDK 怎么实现多端同步未读数

集成融云 SDK 怎么实现多端同步未读数

最近在集成融云 SDK 的时候,碰到了一个跟未读数有关的问题,现象是这样的:

比如我在其中 Web 端已经清除了某个会话的未读数然后退出,再换个设备登入,这个时候未读数还有,并没有清除掉,我就纳闷了,我明明已经清除了会话未读数的呀,怎么换个设备登入就又有了呢?
肯定是融云的 BUG ,所以我立马就提了一个工单,暗想:哈哈,给我逮着了一个 BUG (有点理解测试人员的快乐来源了)

可是事与愿违,跟融云技术人员沟通后才发现是我这边需要做多端同步未读数同步的操作

先讲讲会话未读数是什么?

  • 从字面上就看出来是指某一个会话中未读消息的数量,在会话数据中 unreadMessageCount 表示当前会话的未读消息数

  • 未读消息存在 localStorage 中,未读消息数是针对当前端的未读消息数,服务器不存未读消息数量

    1. 清除浏览器缓存会导致会话未读数不准确
    1. 若浏览器不支持或禁用 localStorage,未读消息数将不会保存,浏览器页面刷新未读消息数将不会存在

image

为什么需要多端同步未读数?

原因是换端登入,融云这边有消息补偿机制,即换端重新登录时,获取当天收发的所有消息,在收消息的过程中,经过 SDK 内部逻辑处理,会累加会话未读数且存在 localStorage 中
所以,如果不同步的话就会出现多端未读数不一致的情况

怎么多端同步未读数(重点来咯)

1、调用 conversation.read() 清除未读数。
2、清除成功后发送 RC:SRSMsg 类型消息进行未读数同步。
3、其他端接受到 RC:SRSMsg 类型消息,掉用 conversation.read() 方法进行本地未读数清除

看代码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值