XMPP简记

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

 

定义

XMPP : The Extensible Messaging and Presence Protocol
中文全称:可扩展通讯和表示协议
简介:可扩展通讯和表示协议 (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传输协议
基于XML  FreeEIM流传输的 即时通讯扩展应用
XMPP的核心XML流 传输协议的定义使得XMPP能够在一个比以往 网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。
XMPP的 即时通讯扩展应用部分是根据 IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如 AIM,QQ等有功能完整,完善等先进性。
XMPP的扩展协议Jingle使得其支持语音和视频。 
XMPP的官方文档是RFC 3920.

编辑本段基本网络结构

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

编辑本段功能

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

编辑本段具体应用

举个例子看看所谓的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连接。

编辑本段XMPP系统特点

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

编辑本段通俗解释

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

转载于:https://www.cnblogs.com/lijc1990/archive/2013/03/09/2952118.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值