采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这里的代码是不是有个问题没有处理,假设用户A给用户B发消息,用户A的同步端会给用户B 发送一条已读回执消息,这个不应该发送吧?
先来剖析一下 这里的逻辑:
syncToSender方法会把自己已读的信息发送给同步端,这个能实现什么功能呢?这个是已读的command,你可能从手机端收到了这条消息但没有点到会话里面去,会话上有个小红点,点进去已读了这条消息,小红点消失,那么你的其他端也需要知道你已读了同步地把小红点去掉。这是这一段逻辑可以实现的功能。
那么你框起来的这一段可以实现什么功能:就是实现对方知道你是否已读,比如钉钉,比如淘宝,你作为消息的发起方你可以知道对方有没有已读你的消息。如果你不需要这个功能确实可以不发送,但是我们的定位是给多个系统去接入的,总会有app需要这个功能的。
老师你的解释是从接收方的角度来说的,我想问的是发送方的同步端也会把自己已读的信息发送到服务器,服务器最终走到红框处的代码,这样的话不就出现发送方的同步端 给 接收方 发送了已读回执消息?这个逻辑是否合理?
这个command的触发时机通常是:我从消息列表点进去某一个会话时触发。发送方和接受方的关系会转换,我点进去。我就是发送方 对方是接收方,对方点进去对方是发送方。 你的意思是说 我有三端abc。a已经发送了已读了,服务端的数据库中已经更新了已读的seq,也把seq发给了对方,bc还有必要发吗? 但是这个已读还有另外的触发场景:我一直在聊天页面不走,那每收到一条新消息就会发一次已读,这时候你abc三端都是挂在聊天页面不走,你到底是拒绝哪一端的操作呢? 在一些特殊场景其实我们也需要比如密聊的场景,密聊就是指定和对方的某一端聊天。
同学真卷呐,一会看一下你的两个问题给你解答。
登录后可查看更多问答,登录/注册
云通信 / 游戏 / 社交等热门赛道中的必会项目
371 12
498 11
453 11
428 9
502 8