当前时间: 1970-01-01 08:00:00
分类:办公文件
评论(0)
飞享IM送达与已读回执的设计方案说明一、设计要点
- 送达只在单聊界面中显示,群聊不关心送达.那么根据
uid和target就能确定当前用户的单聊界面最后一次消息的送达时间 单聊已读回执,同送达回执原理一样
- 如果用户读取了改群组的最后一条消息,代表这个用户读取所有其他用户发送的消息.即是任意发送消息给该群组的用户可以通过
uid和target来确定该uid用户是否读取了消息 - 对于群组消息的已读回执上报,要上报当前群组会话中,发送消息的用户ID
二、送达回执
- 送达
代表接收到对方发送的消息,这里指拉取到最新的用户消息的时间点
每个用户上报自己最后一次接收消息的时间
送达回执持久化存储,采用即时推送机制,用户发送送达回执后,推送给发送者当前送达回执seq,发送者根据seq获取最新的送达回执列表. 原理同发送消息的推拉模式。三、已读回执
- 已读
已读跟已送达有点区别,送达代表用户已经拉取到对方发来的消息,在收到消息后,上报此时收到新消息的最新时间,这个时间点.就是该用户的接收消息时间点. 由于消息在每个会话中,每个会话都有阅读时间点.用户没有点击这个会话代表用户没有阅读该会话内的消息.如果只上报一条已读消息,无法区分用户到底阅读的是那个会话里面的消息
基本
文件
流程
错误
SQL
调试
- 请求信息 : 2026-05-12 18:20:39 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/613474.html
- 运行时间 : 0.233513s [ 吞吐率:4.28req/s ] 内存消耗:4,646.77kb 文件加载:145
- 缓存信息 : 0 reads,0 writes
- 会话信息 : SESSION_ID=dbaf8da5365083958f0d52ccf65aed6b
- CONNECT:[ UseTime:0.000977s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
- SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001641s ]
- SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000750s ]
- SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.017451s ]
- SHOW FULL COLUMNS FROM `set` [ RunTime:0.001447s ]
- SELECT * FROM `set` [ RunTime:0.000615s ]
- SHOW FULL COLUMNS FROM `article` [ RunTime:0.001589s ]
- SELECT * FROM `article` WHERE `id` = 613474 LIMIT 1 [ RunTime:0.001047s ]
- UPDATE `article` SET `lasttime` = 1778581239 WHERE `id` = 613474 [ RunTime:0.006624s ]
- SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000598s ]
- SELECT * FROM `article` WHERE `id` < 613474 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001121s ]
- SELECT * FROM `article` WHERE `id` > 613474 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001079s ]
- SELECT * FROM `article` WHERE `id` < 613474 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.014355s ]
- SELECT * FROM `article` WHERE `id` < 613474 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001796s ]
- SELECT * FROM `article` WHERE `id` < 613474 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001932s ]
0.237642s