请选择 进入手机版 | 继续访问电脑版

默认
发表评论 10
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
新同学,最近在做一个IM的web端,来向大家学习!
①即时通讯要做到多端同步必须要将聊天数据存储到数据库中的,以便在各端漫游聊天记录,那各端的本地还需要进行二次存储吗?
②在使用服务器存储的时候需要对聊天记录的存储做出什么样的优化,让查询的效率更高呢?



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

上一篇:求教,IM中上线提醒是仅发给好友还是发给全部客户端?下一篇:UDP超过MTU限制出现分包乱序的问题应该怎么解决?
推荐方案
评论 10
1)你的web端如果不需要考虑html5兼容性,能用html5的本地存储能力,就可以实现本地缓存,有本地缓存的话,那体验就好很多了,加载聊天记录就跟富户端应用一样的效果;

如果你用了 本地存储能力,那么你的本地与服务端的聊天记录同步时,只需要根据时间差,增量从服务端加载即可。

2)聊天消息是都是热数据,一般不需要存储太久(就好比人说话,过了很长一段时间的话,没有想再回去看,或者意义已经不大了),一些规则可以参考微信的《IM开发宝典:史上最全,微信各种功能参数和逻辑规则资料汇总》。所以,存储的话,也没有太多需要注意的,因为聊天数据本身结构也不复杂,按照传统信息系统的经验去处理就好了。
签名: 《vivo手机上的系统级消息推送平台的架构设计实践》http://www.52im.net/thread-4008-1-1.html
引用:JackJiang 发表于 2022-02-22 20:09
1)你的web端如果不需要考虑html5兼容性,能用html5的本地存储能力,就可以实现本地缓存,有本地缓存的话, ...

谢谢回答,我差不多实现了,现在有一个公告的功能还没有实现,我想问一下,公告这个功能,当发布一条公告之后是需要在所有的用户公告表中都来插入一条公告消息记录并标识已读未读吗,还是如何实现呢,我觉得用户多的话就不能发一次给所有用户都插入一条记录了,我没有想到好的办法,向您请教一下。
签名: 第一天来即时通讯网
引用:knock-code 发表于 2022-03-10 15:32
谢谢回答,我差不多实现了,现在有一个公告的功能还没有实现,我想问一下,公告这个功能,当发布一条公告 ...

那看你需求,如果需要显示到底谁已读谁未读,那怕是真的得一一插入记录了
签名: 《vivo手机上的系统级消息推送平台的架构设计实践》http://www.52im.net/thread-4008-1-1.html
引用:JackJiang 发表于 2022-03-10 15:37
那看你需求,如果需要显示到底谁已读谁未读,那怕是真的得一一插入记录了

就是要自己知道系统发出的公告是读过了没有,那只有在创建公告的时候将数据对应到每一个用户并标识已读未读这样呢。
签名: 第一天来即时通讯网
相互学习哦
相互学习哦
相互学习哦
相互学习哦
相互学习哦
相互学习哦
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部