【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《IM聊天软件开发需要面对的技术问题》,欢迎阅读!
即时通讯聊天软件的应用,使人与人之间的沟通变得越来越便捷,人们对于 IM 聊天软件也越来越依赖。随之而来的就是 IM 聊天软件的快速发展,变得越 来越高端,技术层面也是越发复杂。
就是基于这样的情况,我们在开发一个 IM 聊天软件的时候,就会出现一些 问题,需要我们一一面对并解决。
1、该选择什么样的网络通讯技术
IM 主流网络通讯技术有两种:基于 TCP 的长连接;基于 HTTP 短连接 PULL 的方式。
后者常见于 WEB IM 系统(当然现在很多 WEB IM 都是基于 WebSocket 实 现),它的优点是实现简单,方便开发上手,问题是流量大,服务器负载较大,消 息及时性无法很好地保证,对大规模的用户量支持不够,比较适合小型的IM 系 统,如小网站的客户系统。
基于 TCP 长连接则能够更好地支持大批量用户,问题是客户端和服务器的 实现比较复杂。当然也还有一些变种,如下行使用MQTT 进行服务器通知/消息 的下发,上行使用 HTTP 短连接进行指令和消息的上传。这种方式能够保证下行 消息/指令的及时性,但是在弱网络下上行慢的问题还是比较严重。早期的来往 就是基于这种方式。
2、协议如何制定
IM 协议选择原则一般是:易于拓展,方便覆盖各种业务逻辑,同时又比较 节约流量。后一点的需求在移动端 IM 上尤其重要。常见的协议有:XMPP、SIP、 MQTT、私有协议。
每个协议都有各自的优点和缺点,而一个好的协议需要满足如下条件:高效, 简洁,可读性好,节约流量,易于拓展,同时又能够匹配当前团队的技术堆栈。 基于如上原则,我们可以得出:如果团队小,团队技术在 IM 上积累不够可以考虑 使用 XMPP 或者 MQTT+HTTP 短连接的实现。反之可以考虑自己设计和实现 私有协议。
3、P2P 还是服务器中转
M 通讯方式无非两种选择:设备直连(P2P)和通过服务器中转。 P2P:
多见于局域网内聊天工具,这类软件在启动后一般做两件事情:进行 UDP 广播:发送自己信息和接受同局域网内其他端信息;开启 TCP 监听:等待其他端进 行连接。
这种方式有种种限制和不便:一方面它只适合在线的点对点消息传输,对离 线,群组等业务支持不够。另一方面由于 NAT 的存在,使得不同局域网内机器
本文来源:https://www.wddqxz.cn/c37f29a3514de518964bcf84b9d528ea81c72fb7.html