IM即时通讯实现的原理

Posted phyLearn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IM即时通讯实现的原理相关的知识,希望对你有一定的参考价值。

IM 技术全称 Instant Messaging ,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。

IM的出现和互联网有着密不可分的关系,IM完全基于 TCP/IP网络协议族实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。最早出现即时通讯协议是IRCInternet Relay Chat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,自1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于 是功能强大的IM软件便足以搭建一个完整的通信交流平台。目前最具代表性的几款的IM即时通讯软件有MSNGoogle TalkYahooMessenger 、腾讯QQ等。

典型的IM工作方式如下:登陆IM即时通讯中心(IM即时通讯服务器),获取一个自建立的历史的交流对象列表(好友列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你 时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流

从技术上来说,IM的基本技术原理如下:通过IM服务器登陆或注销用户A通过列表找到B,用户B获得消息并与之交谈通过IM服务器指引建立与B单独的通讯通道

第一步,用户A输入自己的用户名和密码登录IM服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户AIP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户AIM系统中的状态为在线(Online Presence)。

第二步,根据用户A存储在IM服务器上的好友列表(Buddy List),服务器将用户A在线的相关信息发送给也同时在线的IM好友的PC机,这些信息包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等,IM好友的客户端收到此信息后将在予以提示。

第三步是IM服务器把用户A存储在服务器上的好友列表及 相关信息回送到他的客户端机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户AIM客户端收到后将显示这些好友列表及其在线状态。

IM通讯方式有哪些?

1在线直接通讯

如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户BIP地址、TCP端口号等信息,直接向用户BPC机发出聊天信息,用户IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户APC机,这样双方的即时文字消息就不再IM服务器中转,而是直接通过网络进行点对点 的通讯,即对等通讯方式(Peer To Peer)。

2在线代理通讯

用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢,IM服务器将会主动提供消息中转服务,即用户A和用户B的即时消息全部先发 送到IM服务器,再由服务器转发给对方。

3离线代理通讯

用户A与用户B由于各种原因不能同时在线的时候,如此时AB发送消息,IM服务器可以主动寄存A用户的消息,到B用户下一次登陆的时候,自动将消息转发 给B

4扩展方式通讯

用户A可以通过IM服务器将信息以扩展的方式传递给B,如短信发送方式发送到B的手机,传真发送方式传递给B的电话机,以email的方式传递给B的电子邮箱等。

以上是关于IM即时通讯实现的原理的主要内容,如果未能解决你的问题,请参考以下文章

IM即时通讯实现原理

IM即时通讯实现原理

IM即时通讯实现原理

有关IM即时通讯原理

IM即时通讯开发优化提升连接成功率速度等

分享im即时通讯开发之WebSocket:概念原理易错常识