默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求解主流Web端IM需不需要建本地数据库(如IndexDB)存储消息记录?
阅读(47323) | 评论(6 收藏1 淘帖1 1
主流Web端IM需不需要建本地数据库(如IndexDB)存储消息记录?因为IM很多时候需要进行历史消息记录的读取,这时候如果有本地数据库就不需要去后端拉取了,所以想了解一下主流web端IM的做法。

除此之外,您是否有关于主流webIM各种功能的实现思路的文章推荐?

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

本帖已收录至以下技术专辑

推荐方案
评论 6
目前所知的Web端IM产品中,很少有真的把聊天记录这些数据存储到浏览器的本地(比如用你说的IndexDB的方式)。

大致有原因有以下几种:

  • 1)浏览器兼容问题:
    这玩意肯定是只有HTML5里才有,即使都支持html5的浏览器,也不能保证在如此众多的浏览器产品里都能如你预期的那样工作的好(浏览器的兼容性问题,从来就是如影随行,从未离开过)。所以我个人建议Web端应用开发,尽量用最少的浏览器特性、最保守的方式实现你要的功能,这样会越做越省心,反之越做越难做。总之,尽量“别给浏览器添麻烦,因为它本身就是个大麻烦”;
  • 2)没有必要这样做:
    大家对Web的认知里,就是随时用,随时加载,并不期望它像APP富客户端那样断网的时候也能用好,况且你把消息全存储到全地,也并不能把整个应用的体验做成传统APP离线应用那种(因为你的数据是可以离线了,但是HTML+JS这些在断网的情况下还是没法加载,比如用户F5刷新一下页面,页面都加载不了,离线数据有何用);
  • 3)正如第2)点所说
    Web端im里的聊天消息这些东西,用户用的时候实时从网络加载(直到用户关闭网页,可以一直放到JS内存中,只需要加载这一次而已),这是自然而然的事,很符合用户的预期——这叫“主流”。

总之,我所注意到的一些主流IM(包括第3方的IM云,你完全可以把它们的代码扒下来看看),基本上也都是按照传统的Web体验方式来实现的。我建议你如果开发web端im的话,也别把步子跨的太大,没有太大必要。


都是用http接口从服务端拉取的,随取随用,多方便,这不正是Web端应用的优势吗
签名: 不想上班,啦啦啦
最近研究了网易云信的web端实现的确是用的IndexDB,但我觉得自己开发完全可以参照网页端微信,用网页聊天的频率低,数据不会太多,全丢内存里好了
引用:深海 发表于 2021-09-29 10:37
最近研究了网易云信的web端实现的确是用的IndexDB,但我觉得自己开发完全可以参照网页端微信,用网页聊天的频 ...

web端终究是 web,别整复杂就行了
引用:深海 发表于 2021-09-29 10:37
最近研究了网易云信的web端实现的确是用的IndexDB,但我觉得自己开发完全可以参照网页端微信,用网页聊天的频 ...

你可以在外面套个electron它就成了桌面版了
签名: im牛逼
引用:JackJiang 发表于 2019-02-22 16:09
目前所知的Web端IM产品中,很少有真的把聊天记录这些数据存储到浏览器的本地(比如用你说的IndexDB的方式) ...

web-im参考环信跟网易云信确实度是用的indexDb存储消息的
签名: im牛逼
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部