IM即时通讯-6-已读回执的方案设计

这篇具有很好参考价值的文章主要介绍了IM即时通讯-6-已读回执的方案设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景-为什么展示已读未读

部分即时通讯软件会选择展示给用户已读未读, 主要是***快速感知对方的阅读状态, 感觉到自己受重视, 方便做下一步操作***。
如果要带点高度的讲,满足软件所代表的关键用户的诉求

什么场景下要展示已读回执

  1. toB的场景
    如钉钉, 企业微信。已读未读, 是为了满足企业运作核心效率(即老板视角)的诉求, 已读未读, 有一种压迫感,用户A看了用户B的消息, 是需要快速响应的。
  2. 客服的场景。
    电商客服, 售后服务。 已读未读。 是为了满足消费者的快速响应的诉求, 已读未读, 也是有一种压迫感, 客服看了用户的反馈信息, 是需要快速给出响应的。

既然有诉求, 开发便需要设计和实现。在开发之前, 需要定义清楚什么是已读未读?

什么是已读未读?

不同的产品形态, 对于已读未读的定义是不同的。

  1. 用户看到的最新消息以及以前的消息都算作已读: 对于已读未读定义不严格时,用户看到最新的消息,便认作历史消息都当做已读。
  2. 用户点击的消息才算作已读: 像一些通知类的消息,用户真正点击了消息, 才当做是已读。
  3. 用户看到的消息才算作已读,没有看到的不算已读: 像钉钉这样的产品, 消息真正曝光到用户的屏幕上, 才算是已读。

如何设计实现

针对定义的已读未读的三种定义, 实现起来整体可以分为两类。

  1. 会话级别的已读未读:用户看到的最新消息以及以前的消息都算作已读
  2. 消息级别的已读未读: 用户点击的消息才算作已读 + 用户看到的消息才算作已读,没有看到的不算已读

实现会话级别的已读未读

上报时机: 在消息上屏后, 检查接收的最新消息的最新时间戳是否与已经存储的阅读的时间戳的关系即可。如果大于, 更新屏幕上的消息的状态为已读。并且同步到server, 否则,不做调整。
上报存储:由于已读只是一个时间戳, 并且是跟用户+会话, 一一对应, 因而消息的已读未读, 存储在会话中即可。 每个用户的每个会话有自己的已读的时间戳。
IM即时通讯-6-已读回执的方案设计
更新消息已读状态的方案
针对会话级别的已读更新消息的方案, 简单做的话, 可以直接单会话完整信息的更新(即此会话的完整模型信息更新, 如会话的title, lastMsg, 已读的position等完整信息, 推拉均可)的topic, 而复杂做, 可以将会话更新的topic进行二级细分,如仅拉取/推送会话的已读情况。 非高并发,大容量的case下,建议直接采用单会话的完整信息的推送/拉取。

server侧的存储: server侧, 单聊的case由于同一个会话, 两人记录的均是对方的消息的最新时间戳, 因而是不一致的。 需要存储到两人私有信息中。 群聊的case下, 同单聊, 记录最新的接收消息的时间戳也是可以的, 记录到个人的会话的收件箱中。

实现消息级别的已读未读

消息级别根据上文, 存在两种情况, “用户点击的消息才算作已读” + “用户看到的消息才算作已读,没有看到的不算已读”
上报时机: 消息曝光/消息点击时, 检查消息的已读未读状态,针对未读的消息, 上报给server即可。
上报存储: 由于是单条消息级别的, 消息是跟用户+会话+消息, 一一对应的, 因而每条消息的已读未读,存储在用户的单聊消息中即可。
IM即时通讯-6-已读回执的方案设计
更新消息已读状态的方案*
同会话级别的已读未读方案, 有消息完整内容更新, 以及消息局部更新(即仅更新消息的已读未读)。
对于不复杂的业务, 可以采用消息完整内容更新。 但是对于复杂的业务, 建议采用消息局部更新或者消息合并更新的策略。

***server侧的存储***由于消息已读未读,是一个公众的状态, 因而是可以被大家都阅读到的。 对于单聊, 记录到公众的消息中, 对于非单聊, 可以采用的会话中, 仅记录消息的已读任务, 未读人数,而不记录具体的人是那些,采用分表的方式, 单独记录到消息的已读表中以及未读表中。对于企业级的千人群, 万人群的特殊case, 还有特殊的优化逻辑。可以参考下企业微信的IM架构设计揭秘:消息模型、万人群、已读回执、消息撤回等文章来源地址https://www.toymoban.com/news/detail-406695.html

到了这里,关于IM即时通讯-6-已读回执的方案设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【腾讯云IM】即时通讯的登录,登出,用户列表,私聊,图片发送

    附上腾讯云文档链接:https://cloud.tencent.com/document/product/269/75285 1,初始化(刚开始就紧跟着文档走) 2,App.vue中项目引入腾讯云,(附上账号在其他地方登陆的监听) 3,登录前必需 3.1,获取登录id 这个id相当于用户标识,一般采用用户id,但注意,传的 时候要转成字符串格

    2024年02月13日
    浏览(49)
  • 开源即时通讯IM框架MobileIMSDK的Uniapp端开发快速入门

    ►  相关链接: ① MobileIMSDK-Uniapp端的详细介绍 ② MobileIMSDK-Uniapp端的开发手册new(* 精编PDF版) 您需要对Uniapp和Vue开发有所了解: 1) Uniapp 官方入门教程 2) 可能是最好的 uniapp 入门教程 3) Uniapp 官方 Vue 快速入门教程 您需要对WebSocket技术有所了解: 1) 新手快速入门:

    2024年02月05日
    浏览(71)
  • 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v9.0版已发布

    MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持 UDP  、 TCP  、 WebSocket  三种协议,支持 iOS、Android、H5、标准Java平台 ,服务端基于Netty编写。 工程开源地址是: 1) Gitee码云地址:https://gitee.com/jackjiang/MobileIMSDK 2) Github托管地

    2024年02月15日
    浏览(37)
  • uniapp即时通讯源码/im聊天系统源码开源(app+h5+小程序+pc四端)

    IM即时通讯源码是现今互联网行业中成熟、稳定和高效的即时通讯解决方案之一,其源码可以提供给开发者进行二次开发和定制化,实现更加个性化的即时通讯功能。本文将围绕IM即时通讯源码进行深入探讨,包括其优势、应用场景以及二次开发和定制化等方面的内容。 源码

    2024年02月04日
    浏览(44)
  • im即时通讯源码(php/java双版本)+app+pc+uniapp+小程序四端

    IM即时通讯源码是一种用于构建即时通讯应用程序的源代码库。它可以帮助开发人员轻松创建强大的聊天应用程序,并支持多种功能。IM源码包括已定义的协议、用户接口、客户端代码、服务器代码、网络传输层等组成部分。它可以使用多种编程语言编写,如Java、C++、Python等

    2024年04月27日
    浏览(43)
  • 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v7.0版已发布

    MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持  UDP  、 TCP  、 WebSocket  三种协议,支持  iOS、Android、H5、标准Java、小程序、Uniapp ,服务端基于Netty编写。 工程开源地址是: 1) Gitee码云地址:https://gitee.com/jackjiang/MobileIMS

    2024年02月11日
    浏览(39)
  • springboot+websocket+webrtc 仿微信、仿QQ 音视频通话聊天 飞鱼chat IM即时通讯

    仿微信、QQ音视频聊天,文字表情、收发文件图片等功能。本项目使用springboot+websocket+webrtc-bootstrap5+H5+JQuery3.3+mysql实现,可自适应PC端和移动端 git地址在最后 pc端效果图 WebSocket是一种在单个TCP连接上进行全双工通信的协议,这使得客户端和服务器之间的数据交换变得更加简单

    2024年02月04日
    浏览(52)
  • 开源im聊天系统源码全套+php即时通讯源码带直播红包系统(uniapp/pc/app/h5四端)

    随着移动互联网的迅猛发展,即时通讯(Instant Messaging,简称IM)已经成为现代社交生活中不可或缺的一部分。无论是个人还是企业,都需要一种高效、安全、稳定的即时通讯方式来满足实时沟通的需求。因此,IM源码的开发变得越来越重要,它为我们提供了构建现代化即时通

    2024年02月03日
    浏览(53)
  • 开源IM即时通讯源码-社交+电商+音视频+直播-pc+web+ios+安卓-uniapp+php+mysql

      / 产品介绍 /     即时通讯源码是一个平台或聊天应用程序,使用户能够发送和接收即时消息并进行连接。如今,在线交流已成为一种新常态。目前据统计超过30亿人定期使用聊天应用程序而这一数字将保持持续增长。目前您可能需要一个新的聊天应用程序来简化您自己组织

    2024年02月05日
    浏览(55)
  • 自己手写了一套高性能分布式IM即时通讯系统,出去面试嘎嘎聊,都把面试官整不会了!

    沉淀,成长,突破,帮助他人,成就自我。 大家好,我是冰河~~ 分布式IM即时通讯系统本质上就是对线上聊天和用户的管理,针对聊天本身来说,最核心的需求就是: 发送文字、图片、文件、语音、视频、消息缓存、消息存储、消息未读、已读、撤回,离线消息、历史消息、

    2024年01月24日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包