默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教IM里长连接为什么不宜发送略大的数据?
阅读(31540) | 评论(4 收藏 淘帖1 1
情景:实时聊天这种情况较小,大多是一次性查看一个会话内的消息

思路:长连接的数据包不能太大,尽可能精简,所以将推送消息改为推送消息通知(会话列表那种,包括最新的一条消息简介、未读数量),点进会话时通过Rest API拉取消息内容(音视频、长文本、短文本统一请求Rest API拉取),先通知再用restAPI拉取网络延迟应该也不会太高,所以基本不影响体验。

问题:长连接为什么不宜发送略大的数据?长连接直接发送消息内容(不算音视频图片长文本)和发送消息通知两种思路数据包大小差别吗(我感觉差不多,都是字符串)?统一由restAPI拉取架构上会更统一更简单吗?

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

标签:IM开发
上一篇:IM使用融云2.X升级到5.X遇到很问题,希望协助解决,重金酬谢下一篇:求教关于IM中离线消息获取方案,全量还是增量?拉取失败怎么办?

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

推荐方案
评论 4
你可能没自已写过Im长连接底层这些东西。
对于im来说,要保证数据的可靠传递,需要好多繁琐的工作和算法(比如重传算法),而且数据传递的流程特别长:比如在大型的分布式im环境下,消息要进入长连接接入层、路由层等等。

你如果存在大量的大数据包,长连接维护起来那代价就太大了,一是会占用太多内存资源、计算资源(网络IO也是资源啊),二是肯定会影响系统的稳定性,必竟小包快收快发,你大包这得分多少帧。。。

总之,能用http的尽可能不要用长连接,http好在标准、简单,简单带来的好处显而易见:易扩展、易管理、易维护。。。。 而im的复杂性带来的都是相反的方面。
可以的
离线数据用restAPI拉取
实时数据用长连接发
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部