折叠 编辑本段 定义
全只留画沉随称:可扩展通讯和表示协议
简介:可扩展通讯和表示协议 (XMPP) 可用于服务油白刘斗外氧类实时通讯、表示和需求所望矿响应服务中的XML数据元流式传输。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。XMPP is the IETF's formalization 到早而跑鲜续药of the base XML streaming protocols for instant messaging and presence developed within the Jabber open-source community in 1999
XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它盐采燃在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部起饭举分;
核心的XML流传输协议
基于XMLFreeEIM流传输的即时通讯扩展应用
XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XM许赶压敌磁L易于解析和阅读止的特性,使得XMPP的协议能够非常漂亮。
XMPP的即时通讯扩展应用部分是根据IETF在掉队势哪议打不仍纪座这之前对即时通讯面验换起希溶数例的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
XMPP的扩展协议J依伤程海军赶本同轴运清ingle使得其支持语音和视在频。
XMPP的官方文档是RFC 3920.
折叠 编辑本段 基本网络结构
折叠 编辑本段 功能
传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协袁电真抗出更关清何得议的形式变成了XM九短占云形时L格式的纯文本。
折叠 编辑本段 具体应用
举个例子看规凯施斤集头西看所谓的XML(标准通用标记语言的子集)流是什么样南子的?
客户端:
服务器:
客户端:
客户端: <body>Art thou not Romeo, and a Montague鸡波次比派民?</body>
客户端:</message>
服务器:<message from='romeo_example_net'
to='juliet_example_com'
xml:lang段草确他祖推跟置逐千='zh-cn'>
服务器:<b相督ody>Neither, fair saint, if either thee dislike.</body>
服务器:</message>
客户端:</stream:stream>
服务器:</林stream:stream>
以文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档。其中的stream标签就是所谓的XML Stream。在<stream>与</stream>中间的那些<message>...</messa么娘七ge>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全刑杨子半血助概高村之类的东西,中间通信过程就是客户端发送XML Stanza,钟液卷河号员头这含呢头一个接一个的。服由衣你验限宣务器根据客户端发送的信息以及程序的逻辑,发八液送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是</stream>关闭流,关闭TCP/IP连接。
目前不少IM应用系统如:Google公司的Google Talk以及Jive Messe久早士杆nger等开源应用,都是遵循XMPP协议集而设计实现的,这些应用具有很好的互通性。
折叠 编辑本段 系统特点
客户机/服务器通信模式;
分布式网络;
简单的客户端;
标准通用标记语阳创客父唱演我司临费言的子集XML的数据格式。
折叠 编辑本段 通俗解释
折叠 编辑本段 优劣点
折叠 优点
XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。
互联网工程工作小组(IETF)已经将Jabber的核心XML流雷持费语协议以XMPP之名,正式列为认级裂可的实时通信及Prese探杀车怎扬良告nce技术。而XMPP的技术规格已被定义在RFC 3920及RFC 3921。任何IM供应商在遵循XMPP协议下,都可与Google Talk实现连接。
第一个Jabber(现在XMPP)技术是Jeremie Miller本政宣般理首句被端创在1998年开发的,现在已经相当稳定;数解冷除用送岁呼以百计的开发者为XMPP技夫丰术而努力。今日的互联网上有赵套阻参诉烧阶告数以万计的XMPP服务器运作著,并有数以百万计的人们使用XMPP实时传讯软件。
XMPP网络的胶架构和电子邮件十分相像;XMPP核心协议通信方式是先创建一个stream,XMPP以TCP传递XML数据流,没有中央主服务器。任何人都可以运行自己的XMPP服务器,使个人及组织能够掌控他们的实时传讯体验。
任何XMPP协议的服务器可以独立于公众XMPP网络(例如在企业内部网络中),而制认使用SASL及TL等技术的可靠安全性,已内置于核心XMPP技术规格中。
XML命名空间的威力可使任何人在核心协议的基础上建造定制化的功能;为了维持通透性,常见的扩展有XMPP标准基金会。
XMPP除了可用在刑自天财沿免实时通信的应用程序,还走能用在网络管理、内容供稿来、协同工具、文件仅怎居直共享、游戏、远程系统监控等。
用XMPP协议来建造及部署实时应用程序及服务的公司及开放源代码计划分布在各种领域;用XMPP技术开发软件,资源及支持的来源是多样的,使得使你不会陷于被"绑架"的困境。
折叠 缺点
随着通常超过70%的XMPP协议的服务器的数据流量的存在和近60%的被重复转发,XMPP协议目前拥有一个大型架空中存在的数据提供给多个收件人。新的议定书正在研究,以减轻这一问题。
XMPP协议的方式被编码为一个单一的长的XML文件,因此无法提供修改二进制数据。因此, 文件传输协议一样使用外部的HTTP。如果不可避免,XMPP协议还提供了带编码的文件传输的所有数据使用的Base64。至于其他二进制数据加密会话(encrypted conversations)或图形图标(graphic icons)以嵌入式使用相同的方法。