XMPP协议实现原理介绍(转)

本文介绍XMPP协议原理及相关信息。

 

XMPP协议简介  

XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩 充的进程开始协议SIP(SIMPLE)。

 

在 这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展 性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。

 

1. 什么是XMPP ?

XMPP 的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分; 核心的XML流传输协议 基于XML流传输的即时通讯扩展应用 XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议 能够非常漂亮。 XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完 整,完善等先进性。

 

2. XMPP的基本网络结构是怎样的

XMPP 中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承 担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后 在之上传输XML。

 

3. XMPP通过TCP传什么了?

传 输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而 XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而 XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网 络基础协议。所以可以说,XMPP用TCP传的是XML流。

 

XMPP协议工作原理:

 

 

 

4. XMPP协议地址格式:

 

 

5. XMPP消息格式: 

 

 

 

 

 

 

 

6. 核心的XML流传输协议

基于XML FreeEIM流传输的即时通讯扩展应用

XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。

XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。

XMPP的扩展协议Jingle使得其支持语音和视频。 

XMPP的官方文档时RFC 3920. 

 

7. XMPP应用示例

举个例子看看所谓的XML流是什么样子的?

  客户端:<?xml version='1.0'?>  <stream:stream  to='example_com'  xmlns='jabber:client'  xmlns:stream='http_etherx_jabber_org/streams'  version='1.0'>  服务器:<?xml version='1.0'?>  <stream:stream  from='example_com'  id='someid'  xmlns='jabber:client'  xmlns:stream='http_etherx_jabber_org/streams'  version='1.0'>  ...其他通信...  客户端:<message from='juliet_example_com'  to='romeo_example_net'  xml:lang='en'>  客户端: <body>Art thou not Romeo, and a Montague?</body>  客户端:</message>  服务器:<message from='romeo_example_net'  to='juliet_example_com'  xml:lang='en'>  服务器:<body>Neither, fair saint, if either thee dislike.</body>  服务器:</message>  客户端:</stream:stream>

  服务器:</stream:stream> 

 

 

以 文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的 XML文档。其中的stream标签就是所谓的XML Stream。在<stream>与</stream>中间的那些<message>...< /message>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一方发信给另外一方。通信的最后阶段是</stream>关闭流, 关闭TCP/IP连接。 

 

8. XMPP系统特点:

1)客户机/服务器通信模式;(2)分布式网络;(3)简单的客户端;(4)XML的数据格式。 

 

9.通俗解释:

其实XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接受的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。

 

转载地址:http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378956.html 

 

完毕。

基于xmpp协议的开源库smack接口api详细介绍 基于xmpp协议的开源库smack接口api详细介绍 对于英文不好的孩纸非常有帮助的~ 立即下载

相关推荐

XMPP协议分析-原理篇.pdf

XMPP协议分析,xmpp是即时通讯IM中比较普遍的应用

XMPP协议实现原理介绍

本文介绍XMPP协议原理及相关信息。 XMPP协议简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SI...

weixin_34112181的博客 517

XMPP协议原理介绍

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。  XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;

保卫的专栏 14万+

TCP/IP、Http、Socket、XMPP-从入门到深入

TCP/IP、Http、Socket、XMPP-从入门到深入 终极iOS程序猿 2016-12-29 18:27 为了便于大家理解和记忆,我们先对这几个概念进行的介绍,然后分析他们的不同,再进行详细的分析。 一、TCP/IP简介 IP协议网络层,TCP协议是传输层,HTTP协议是应用层,socket是对TCP/IP协议的代码封装和应用。 TPC/IP 主要解决数据如何在...

weixin_30394333的博客 316

XMPP协议分析-原理

XMPP协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于

Ray的专栏 2084

XMPP协议详解

1、XMPP的基本网络结构是怎样? xmpp中定义了三个角色,客户端、服务器和网关;通讯可以在这三者之间的任意两者中进行双向进行。服务器同时承担了客户端的信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 2、XMPP协议网络架构: ...

caixiaobai_1的博客 7876

HTTP协议XMPP协议

应用层协议:每个应用层的都是为了解决某一类应用问题。而问题的解决又必须通过位于不同主机中的多个应用进程之间的通信和协同工作来完成。应用进程之间必须遵守严格的规则。应用层协议应当定义如下几个: 应用进程之间交换的报文类型,如请求报文和响应报文 报文中各个字段及其详细描述 包含在字段中的信息的含义 进程何时、如何发送报文,以及对报文进行响应的规则 1.HTTP协议 万维网使用统一资源定位符URL来标志

southernriver的博客 1万+

XMPP协议原理介绍

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。   XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;

guangwen_lv的专栏 501

XMPP协议实现原理

XMPP协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP

yangye的专栏 600

XMPP 协议原理介绍

XMPP 协议是什么: XMPP 是用于即时通讯的扩展标记语言(XML)协议,它用于即时消息和在线现场的探测,它基于服务器--客户端的架构 XMPP 的优点: 1、XMPP 协议是公开的,并不属于某个机构或者个人 2、XMPP 协议具有良好的扩展性,XMPP 充分的发挥了 XML 结构化数据的通用传输层的作用,它将出席和上下文敏感信息嵌入到 XML 结构化数据中,从而使得数据以高效率传送。

die_word的博客 629

XMPP协议原理

本文介绍XMPP协议原理及相关信息。 XMPP协议简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程...

131
上一篇: Tomcat在eclipse启动报错
下一篇: OpenFire的安装与配置
merit
博客等级 码龄19年 3粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值