默认
发表评论 11
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教如何才能更好的设计出IM聊天会话列表
阅读(106290) | 评论(11 收藏 淘帖
10金币
会话列表中显示着我与每个群,每个人最后消息的展示,提供聊天的入口。要满足最新消息展示在最前,最简单的方案就是每个消息发送时更新会话列表,这种情况会造成大量的更新。
如何才能更好的设计出会话列表。

标签:IM开发
上一篇:为什么主流IM登录用HTTP,聊天用TCP,不可以一起用吗下一篇:请教 Android 设备上防火墙的技术实现原理
推荐方案
评论 11
你说的功能是就是类似于主流IM里的这个首页“消息”列表?(就像下图这样?)
求教如何才能更好的设计出IM聊天会话列表_WechatIMG292.jpg
额 这就是所谓的dialog
存储的时候 只存出 用户id (单聊 或者群聊的id)记录有这么个框框就行
然后 如果你有已读和但双沟的话 要村上已读和单双勾字段  点击对话框的时候更新下已读  对方看了之后更新下双钩
平时发消息的时候 不用去更新

只在获取对话框的时候(一般也就登陆的时候获取一次)
从数据库查找 selfid + userid 的最后一条消息

嗯 打算这么做 不过现阶段我们采用的还是每条消息都有更新一下
引用:六神 发表于 2019-03-18 19:28
额 这就是所谓的dialog
存储的时候 只存出 用户id (单聊 或者群聊的id)记录有这么个框框就行
然后 如 ...

每条消息都更新,不存在什么问题,CPU每秒都是成千上亿次的计算能力,你这人类聊天消息能快到哪里去?担心速度像瀑布一样快到不行?不可能的。别把问题想复杂,主流IM都是这样做的。
引用:JackJiang 发表于 2019-03-18 20:07
每条消息都更新,不存在什么问题,CPU每秒都是成千上亿次的计算能力,你这人类聊天消息能快到哪里去?担 ...

每条消息更新,意味着群里有多少人发消息的时候就会更新多少次,对于多端登陆(web无法进行本地存储),这个量还是挺大的吧,类似于微信订阅号消息也是属于在列表中的一个,订阅的数量级很大,这跟群组消息写一条还是写多条中的写扩散量一样吧。。
签名: 偶尔看看
引用:xhz 发表于 2019-03-25 09:15
每条消息更新,意味着群里有多少人发消息的时候就会更新多少次,对于多端登陆(web无法进行本地存储), ...

量再大,在你的手机端,能一秒钟收到一条吗?
即使真有,这样的群,到底是刷屏还是正常聊天?如果还有如你想象的,比这量大 速度快,那还是人聊天的群吗,你不早就退群了,因为根本就看不过来。

做技术,要联系实际产品的,不然没有意义。有些技术理论上的东西,实际上是不太可能发生的。
引用:JackJiang 发表于 2019-03-28 17:12
量再大,在你的手机端,能一秒钟收到一条吗?
即使真有,这样的群,到底是刷屏还是正常聊天?如果还有如 ...

我指的是群组有一万的人,只要有一个人发言,其他人是否在线,都会更新群员的会话列表数据,会话列表需要漫游,在这个基础之上还得展示每个群的未读消息数
签名: 偶尔看看
引用:JackJiang 发表于 2019-03-28 17:12
量再大,在你的手机端,能一秒钟收到一条吗?
即使真有,这样的群,到底是刷屏还是正常聊天?如果还有如 ...

说的是服务器的更新  客户端的话肯定不存在这个问题的
引用:六神 发表于 2019-04-01 20:36
说的是服务器的更新  客户端的话肯定不存在这个问题的

是的,会话列表数据在服务端同样存在维护的
签名: 偶尔看看
加油@
会话列表是登录的时候获取的,但是,这个列表日积月累,有可能会很多很多,比如3000个,但是因为漫游关系,所以不能只给活跃的客户端。有什么好策略可以应对吗?
服务端更新做成队列异步处理就好了
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部