XMPP协议的简介
即时通讯技术(IM)支持用户在线实时交谈,如果发送一条消息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容.有许多的IM系统,比如AOL IM 、Yahoo IM 、MSN 以及QQ,他们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议. 协议用来说明信息在网络上如何传输、如果有一个统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即使通讯的统一标准,目前已经出现过的IM协议包括: IETF的对话初始协议(SIP) 和即时通讯对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和即使通讯协议...
1.XMPP起源
XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。最初,XMPP作为一个框架开发,目标是支持企业环境内的即时消息传递和联机状态应用程序。当时的即时消息传递网络是私有的,不适合企业使用。XMPP前身是Jabber(1998年),是一个开源组织定义的网络即时通信协议。XMPP是一个分散型通信网络,这意味着,只要网络基础设施允许,任何XMPP用户都可以向其他任何XMPP用户传递消息。多个XMPP服务器也可以通过一个专门的“服务器-服务器”协议相互通信,提供了创建分散型社交网络和协作框架的可能性。2.简介
XMPP是一种基于XML的协议, 它继承了在XML环境中灵活的发展性。这表明XMPP是可扩展的。可以通过发送扩展的信息来处理用户的需求,以及在 XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容 易建立客户应用程序或给一个配置好的系统添加功能。XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。XMPP的扩展协议Jingle使得其支持语音和视频,目前iOS尚不支持。XMPP的官方文档是RFC 3920。XMPP协议曾经是Google力推的即时通信协议,其代表作品是GTalk。注意:相对xml,json更高效一些。3.基本结构
XMPP是一个典型的C/S架构,而不是像大多数即时通讯软件一样,使用P2P客户端到客户端的架构,也就是说在大多数情况下,当两个客户端进行通讯时, 他们的消息都是通过服务器传递的。采用这种架构,主要是为了简化客户端,将大多数工作放在服务器端进行。
XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。
服务器同时承担了客户端信息记录,连接管理和信息的路由功能。 网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。
基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML流。