默认
发表评论 12
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求助IM聊天软件中的新消息和历史消息有啥区别
阅读(46045) | 评论(12 收藏 淘帖
即时通讯 的 新消息和历史消息有啥区别?

还有首屏消息和首屏会话?

新消息:当用户在聊天页面内时,推送到达,用户拉取的消息叫做新消息;

历史消息:当用户不在聊天页面内时,推送到达,用户未拉消息,用户再次进入聊天页面时拉取的消息叫做历史消息;


为啥要这么做呢?

我看一篇文章有新消息队列和历史消息队列,为啥要分这两个队列呢? 两个队列都才 20 条数据,文章:https://blog.csdn.net/m0_37608135/article/details/104628333


即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:求助 IM开发
上一篇:im中语音消息,音频文件用什么格式压缩大小,求好的解决方案下一篇:求教IM中黑名单是否可以客户端判断? 服务端的话会不会影响异步性能?
推荐方案
评论 12
不能这么理解吧。
所谓的新消息和历史消息,这看从哪个维度去理解了。

对于app来说,无非就是已读消息(点开聊天界面后已查看的)和未读消息(未点开聊天界面查看的),再有就是离线消息(也就在你app不在线时,对方发的消息)。
引用:JackJiang 发表于 2021-06-04 14:56
不能这么理解吧。
所谓的新消息和历史消息,这看从哪个维度去理解了。

哪他为啥要设计两个队列,一个新消息队列和一个历史消息队列,而且两个队列的 长度都为 20 , 历史消息 20 是不是不够?没看到为啥要这么做
引用:JeffreyZero 发表于 2021-06-04 15:27
哪他为啥要设计两个队列,一个新消息队列和一个历史消息队列,而且两个队列的 长度都为 20 , 历史消息 2 ...

应该是不够的。不过,具体的im设计看自已的情况吧,没有标准的做法
引用:JackJiang 发表于 2021-06-04 15:51
应该是不够的。不过,具体的im设计看自已的情况吧,没有标准的做法

所以 为啥要有新消息队列和 历史消息队列呢?  还有就是历史消息队列应该存多少长度比较合理
引用:JeffreyZero 发表于 2021-06-04 20:44
所以 为啥要有新消息队列和 历史消息队列呢?  还有就是历史消息队列应该存多少长度比较合理

对于服务端来说,不存新消息这种说法,服务端只需要存一个全量消息表(因为多端同步时需要通过此表进行增量计算),是不是新消息只是对于客户端来说,因为客户端本地有缓存,在本此加载完的缓存之后收到的消息,都可以认为是本次启动后的新消息。

你不要被那稀奇古怪的文章的给误导了,有可能文章作者自已压根没写过im,只是通过各种文章得到知识,通过理论,拼凑出来的概念。以你自已的实际开发为准就好了
引用:JackJiang 发表于 2021-06-04 21:06
对于服务端来说,不存新消息这种说法,服务端只需要存一个全量消息表(因为多端同步时需要通过此表进行增 ...

我也没做过 IM 经验,所以才参考别人的文章,历史消息存全量会不会太多了,你的意思只存一份历史消息队列,用来做消息同步和漫游就够了对吗? 客户端拉取消息都是通过客户端本地自己的游标去增量拉取就行了
引用:JeffreyZero 发表于 2021-06-04 21:37
我也没做过 IM 经验,所以才参考别人的文章,历史消息存全量会不会太多了,你的意思只存一份历史消息队列 ...

对的

哪历史消息存多少合适, 目前用的 Redis 的有序集合,怎么淘汰
引用:JeffreyZero 发表于 2021-06-04 22:44
哪历史消息存多少合适, 目前用的 Redis 的有序集合,怎么淘汰

你参照微信的逻辑:http://www.52im.net/thread-3008-1-1.html#33
学习了,
谢谢分享,互相学习
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部