`
lizaochengwen
  • 浏览: 644619 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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(短信),MSN,ICQ等。基本的网络形式是单客户端通过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来进行数据通讯。
分享到:
评论

相关推荐

    xmpp协议介绍,XMPP体系架构

    XMPP体系架构 XMPP server:其内核是一个XMPP路由器,完成基本组件间的数据包交换和路由。 功能: 1.会话管理器:负责客户端会话认证,在线状态,用户联系表等 2.数据存储器(XDB):连接数据库系统,保持用户信息、...

    xmpp协议说明ppt

    xmpp协议介绍PPT,详细介绍了XMPP核心协议方方面面

    《XMPP高级编程 使用JavaScript和jQuery》 高清扫描 完整版 PDF电子书 详细书签

    《XMPP高级编程 使用JavaScript和jQuery》 高清扫描 完整版 PDF电子书 详细书签 这是刚出炉的第一本完整PDF,网上其它地方流传的都是试读版PDF坑爹呢。 友情提醒: 大家在阅读高清扫描版PDF书籍时,如果需要做...

    android的XMPP客户端

    android的XMPP客户端

    Practical.XMPP.1785287982

    Learn about the fundamentals of XMPP and be able to work with the core functionality both server-side and in the browser Build a simple 1-to-1 chat (the "Hello World" of XMPP), explore multi-user chat...

    XMPP协议中文参考指南

    XMPP的核心功能定义在Extensible Messaging and Presence Protocol (XMPP): Core [XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]. 这些功能 -- 主要是 XML流, 使用 TLS和SASL,以及流的根元素之下的, , 和 &lt;iq/&gt; ...

    XMPP协议分析-原理篇.pdf

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

    XMPP高级编程——使用JavaScript和jQuery.pdf

    从最基本的层次来说,XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理 现场协议)是一种用来在两个地点之间传递小型的结构化数据段的协议。在此基础上,XMPP 被用来构建大规模即时通信系统、...

    XMPP-Prebind-for-PHP:PHP预绑定类,以与XMPP服务器(如Openfire)一起使用

    XMPP Prebind for PHP后端此类专为PHP后端设计,用于将XMPP会话与XMPP服务器(如Openfire(已测试),eJabberd等)预先绑定。 换句话说,如果您想使用像这样的前端XMPP客户端并利用PHP的(又名 )优势,那么您来对...

    Professional XMPP Programming with JavaScript and jQuery

    XMPP P owers a w ide ranGe oF aPPliCations including instant messaging, multi-user chat, voice and video conferencing, collaborative spaces, real-time gaming, data synchronization, and even search. ...

    XMPP权威指南 (利用jabber构建实时聊天应用).pdf

    XMPP由Jabber软件基金会开发,最早在Jabber上实现。Jabber项目由Jeremie Miller在1998年开始的一个免费、开源的项目,用于提供给MSN、Yahoo!的IM服务。由于XMPP是一种基于XML架构的开放式协议,在IM通讯中被广泛采用...

    Android聊天项目D3Xmpp.zip

    D3Xmpp 是一个完整的 XMPP 的 Android 的项目服务端使用 openfire 3.9.3客户端使用 ...PS:该项目是本人在学习xmpp过程中总结的一些东西,代码组织凌乱,旨在帮助新入门xmpp学习xmpp的基本使用 标签:D3Xmpp

    Professional XMPP Programming with JavaScript and jQuery.pdf

    XMPP Powers a wIde range of aPPlIcatIons including instant messaging, multi-user chat, voice and video conferencing, collaborative spaces, real-time gaming, data synchronization, and even search. ...

    Xmpp和OpenFire实例

    先说一下为什么要写这篇博客,是因为本人在周末在研究XMPP和OpenFire,从网上下载了个Demo,但跑不起来,花了很长时间,经改造后,跑起来了,写个篇博文也是希望后边学习XMPP和OpenFire的同学下载后直接运行,少走...

    XMPP+Openfire免费资源来啦

    2、com.qq.util包中,Const类,修改XMPP_HOST内容(就是openfire服务器名称) 3、本人保证,可以使用。请安心使用,运行成功的时候千万别激动…… 4、目前存在的BUG,不能及时刷新新收到的信息,需要退出聊天界面后...

    xmpp-over-websocket.zip

    xmpp-over-websocket 的目标是提供一个实时信息基于 xmpp 和 websocket pull 或者 poll 的解决方案。 Getting Started Clone git 库的子模块,运行通讯脚本,然后每个子模块会生成一个发布包。 步骤:1) 部署发布包...

    Flex实现的xmpp消息发送接收

    Flex实现的xmpp消息发送接收,利用xiff插件实现,可以在android、ios等手机运行,也可以直接在ie上运行

    Android基于xmpp即时通讯 实例源码

    Android基于xmpp即时通讯软件,界面简洁大方,功能简单小巧,bug倒是不多不少。 编码方式是utf-8,不能直接导入eclipse,请自己新建一个工程,将源码覆盖过去,并将编码方式修改为utf-8。 了解更多,请移步:...

    Android资料_XMPP

    基于XMPP的多方通信系统研究与实现.pdf 基于XMPP的P2P即时通信系统的研究及实现.kdh 基于SIMPLE和XMPP协议的移动IM研究.pdf XMPP研究与应用.pdf XMPP协议研究及其在IM系统群组通信中的应用.pdf XMPP协议分析及客户端...

Global site tag (gtag.js) - Google Analytics