赞
踩
转自:https://www.jianshu.com/p/38e127cb03ec
By 紫韵: 最近对 IM 系统产生了兴趣,就看了些博客,现希望通过一个系列的文章对其稍作总结与记录,如有不对,还望指正。
IM:Instant Messaging,即时通讯,是一个允许两人或多人通过网络实时传输文字、语音、视频等的终端服务,如现在常用的 QQ、微信、百度 Hi 等。IM 完全基于 TCP/IP 网络协议族实现,而 TCP/IP 协议族则是整个互联网得以实现的技术基础。
典型的 IM 通讯方式有如下四种:
P2P && 服务器中转
一般常用的 IM 通讯方式就是 P2P 和服务器中转这两种,下面简要对比分析这两者的区别。
P2P:
P2P 多见于局域网内聊天工具,典型的应用有:飞鸽传书、天网 Maze 等。这类软件在启动后一般做两件事情:
进行 UDP 广播:发送自己信息和接受同局域网内其他端信息;
开启 TCP 监听:等待其他端进行连接。
限制和不便:
只适合 ** 在线 ** 的 ** 点对点 ** 消息传输,对离线、群组等业务支持不够;
由于 NAT 的存在,使得不同局域网内机器互联难度大大上升,在某些网络类型(对称 NAT)下无法建立连接。
** 服务器中转 **
几乎所有互联网 IM 产品都采用服务器中转这种方式进行消息传输,相比于 P2P 的方式,它的优劣如下:
优点:
能够支持更多P2P无法支持或支持不好的业务,如离线消息,群组,聊天室服务;
方便业务逻辑的拓展和新旧版本的兼容。
缺点:服务器架构复杂,并发要求高。
** 典型的 IM 工作方式如下:**
客户端登陆 IM 通讯中心(IM 通讯服务器),获取好友列表,获取离线消息,将自身标志为在线状态,与聊天对象建立聊天通道,进行文字、语音等通信。
一个典型的 IM 系统的选型过程大致包含如下几个部分:
** IM 系统架构分层:**
一个典型的 IM 系统可能由如下及部分组成:
*** 功能点分析:***
*** 技术点分析:***
登录优化:
服务器负载优化:多服务器专职化,各司其职(专门用于登录、鉴权、状态管理的服务器;专门用于消息通信的服务器等);服务器集群;分流(如可考虑消息直连通信 P2P);
消息同步机制
消息可靠性保证
消息时序性和一致性
消息推送机制
心跳保活机制
** 移动端 IM 客户端难点 **
** 移动端架构设计的难点 **
作者:LilacZiyun
链接:https://www.jianshu.com/p/38e127cb03ec
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。