目录
最近有朋友向我问起关于即时通讯开发的相关问题,因为公司项目中使用XMPP协议+Openfire服务器开发的聊天系统模块!最近有时间,对相关内容进行整理,方便以后开发中遇到问题进行查阅,也顺便分享给网友,能力有限,有什么不对的地方欢迎大家指正!
即时通讯就是能够即时发送和接收互联网消息等业务,集成了聊天、电子邮件、博客、、音乐、电视、游戏和搜索等功能;国内最常用的即时通讯软件:QQ、微信、百度hi、网易泡泡、淘宝旺旺等等;
主流的IM协议有4种:IMPP、PRIM、SIP(SIMPLE)、 XMPP
IMPP协议定义了必要 的协议和数据格式,来构建一个具有空间接收、发送功能的即时通讯系统;
PRIM与XMPP、 SIMPLE类似,但已经不再使用了。
SIMPLE是目前为止制定的较为完善的一个,SIMPLE符合RFC2778和RFC2779,通过SIP来发送presence消息,SIP是IETF终端制定的协议。SIP一般考虑在建立语音通话中,一旦连接以后,依靠实时协议(如RTP)来发送语音,也可以进行视频。可以进行视频会议和三方电话会议。
XMPP协议是基于XML的协议,继承了XML的可扩展性,XMPP也包括针对服务器端的软件协议。
XMPP目前是免费源代码开放Jabber IM系统中广泛采用的;
Jabber IM是Linux即时通讯服务服务器,是一个开源项目;
QQ协议是二进制的,不开源,不开放;
MSN协议是文本,不开源,不开放;
1. XMPP以Jabber协议为基础,而Jabber协议是开放式协议,XMPP已被IETF国际标准组织完成了标准化工作;
2. XMPP是基于XML传输,可扩展性强
3.Google官方宣布,Google Talk通过XMPP协议将正式支持不同IM/VoIP服务器之间的通讯;