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

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

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

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

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

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

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

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

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

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

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

看代码:

清除端

// 清除未读数
let conversation = im.Conversation.get({targetId: '接收方的 userId',type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});conversation.read().then(function(count) {console.log('获取指定会话未读数成功', count);// 发送同步消息conversation.send({messageType: 'RC:SRSMsg', content: {//从消息里获取服务器端时间,以最近一条已读 message 为准lastMessageSendTime: message.sentTime;}}).then(function(message){console.log('发送同步消息成功', message);});
});

同步端

// 其他端在消息监听中接收到同步消息后,调用清除未读数做更新处理
// 收到同步消息进行未读数清除操作 调用 conversation.getUnreadCount() 成功后不需要再在发送 `RC:SRSMsg` 类型消息。
let conversation = im.Conversation.get({targetId: '接收方的 userId',type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});conversation.read().then(function(count) {console.log('获取指定会话未读数成功', count);
});

总结:就是在清除未读数的时候,发送 RC:SRSMsg 类型消息,这样在其他端就能收到 RC:SRSMsg 类型消息,收到后调用清除未读数方法即可
注意:其他端不管在线或者不在线都可以监听到 RC:SRSMsg 类型消息,别忘了我们上面说的融云有消息补偿机制,想了解这个机制的话,请点击这里!

也可以参考融云的官方文档:https://docs.rongcloud.cn/v4/views/im/noui/guide/private/conversation/unreadcount/web.html#clearUnreadCount

好了,分享就这些,不足的地方还请留言指教,如果喜欢的记得点赞哦!

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

  1. 融云发送图片消息_Web 端集成融云 SDK 如何发送正确图片消息给移动端展示?

    Web 端集成融云 SDK 如何发送正确图片消息给移动端展示? 前言 Web 端使用融云的即时通讯 SDK 在发送图片消息给移动端的时候,移动端一般会收到一个缩略图数据和展示高清图片地址,但是往往 W ...

  2. 快速集成融云SDK– Android Studio

    现在很多应用都加入了即时通讯功能(客服等),选择第三方的SDK比较省事快捷,这里就介绍一下集成融云SDK时遇到的一些问题. 这个是官网的集成指南:http://www.rongcloud.cn/doc ...

  3. ios 融云 重写对话列表_iOS集成融云SDK part 1 小记

    之前虽然稍微了解过即时通讯方面的内容,但是一直没有怎么去做过聊天部分的.这次是刚刚使用融云,做一下记录. 关于融云SDK集成的具体步骤,我都是参考以下这些文章(很多图片都是直接从这些地方拿的,我真是太 ...

  4. 基于融云SDK实现高仿微信

    本篇主要介绍了一下本人正式完成的第一个Android demo应用. 1.demo运行效果图 2.为了实现微信的体验效果,这里面用到了几个特殊的控件或者技术. 2.1 第一张图中的"+&qu ...

  5. 调用融云SDK创建讨论组失败bug记录

    问题描述 项目集成融云SDK,在调用融云创建讨论组的时候,第一次创建失败,第二次创建成功. 猜测一: 猜测是因为创建的讨论组的时候,讨论组成员中有userId是融云中没有的,于是去向融云技术支持提工单 ...

  6. android.intent.action.view 融云,Android 融云SDK集成单聊

    一 .下载 SDK 您可以到融云官方网站下载融云 SDK.融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载.各组件的功能如下: IMKit – 融云 IM 界面组 ...

  7. android 融云sdk集成,使用融云SDK集成

    使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...

  8. 融云 SDK 集成详解 – Android Studio

    一 .下载 SDK 您可以到融云官方网站下载融云 SDK.融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载.各组件的功能如下: IMKit – 融云 IM 界面组 ...

  9. android讨论功能,集成融云Android SDK实现在群聊/讨论组中@人的功能

    集成融云Android SDK实现在群聊/讨论组中@人的功能 可以确定的是融云SDK本身不提供@的功能,需要自定义实现. 在实现这个功能时,基本模仿微信的做法: 在列表中显示有人@了你 通知显示有人@ ...

最新文章

  1. Android studio Dialog 弹出式对话框
  2. 自动化机器学习(二)自动构建机器学习流水线
  3. Activity生命周期的补充
  4. java 实现 tcp_java实现TCP通信
  5. 上公厕上一半突然被拽出来......
  6. MySQL5.7 常用系统表大全
  7. Android-活动(Activity)的基本介绍
  8. canal DevGuide
  9. Linux bond6配置文件,Linux网卡bond
  10. horizontal center and vertical middle in CSS
  11. ROP_return to dl-resolve学习笔记
  12. php网站整合ck播放器,CKplayer 整合播放M3U8视频
  13. IEC 61850通信协议体系介绍和分析
  14. matlab倒立摆pid仿真,一级倒立摆课程设计--倒立摆PID控制及其Matlab仿真
  15. 【数据分析】数据分析在电商精准营销及效果评估中的应用
  16. excel有条件的隐藏某行_暂时隐藏Excel条件格式
  17. arcgis影像怎么去黑边_arcgis遥感图像去黑边林林种种(至少7种方法)
  18. 从身份证号获取身份证信息
  19. 国内商务工作邮箱对比哪个好?常用邮箱开通哪个最好?
  20. 【Google】【内部样式表】【外部样式表:听力地点方向题】【设置字体间距】【多类、子元素选择器】【网页设计与网站开发HTML、CSS、JavaScript】【第 8 章】CSS基础——实验题1-6

热门文章

  1. ListView控件数据操作——添加表头和数据
  2. 使用 Nodejs 实现定时爬取微博热搜榜
  3. 【Vivado那些事儿】Vivado中运行时出现visual c++运行错误的解决办法
  4. 使用ISO文件安装Linux
  5. WS2812灯珠(五)---移植Adafruit_NeoPixel库
  6. 《操作系统真象还原》第二章 ---- 编写MBR主引导记录 初尝编写的快乐 雏形已显!
  7. nginx的基本功能和原理
  8. jpush推送格式 swift_swift 极光推送
  9. 【参赛作品15】openGauss数据库维护管理
  10. 干货丨大数据时代电子政务面临的机遇和挑战