http://baike.baidu.com/view/189676.htm
百度百科的解释是:
XMPP
1、什么是XMPP ?
XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分;
核心的XML流传输协议
基于XML流传输的即时通讯扩展应用
XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。
XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。
XMPP的扩展协议Jingle使得其支持语音和视频。
2、XMPP的基本网络结构是怎样的?
XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
3、XMPP通过TCP传什么了?
传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。
4、举个例子看看所谓的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 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接受的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。
分享到:
相关推荐
XMPP 协议中文参考指南 XMPP(Extensible Messaging and Presence Protocol)是一种基于 XML 的协议,用于实时交换消息和出席信息。该协议的核心功能定义在 RFC 3920 中,包括 XML 流、TLS 和 SASL 加密、流的根...
XMPP协议的核心功能被定义在RFC3920和RFC3921中,分别涉及核心协议和即时消息与出席协议(XMPP-IM)。 通用架构章节阐述了XMPP协议所采用的客户-服务器模型,该模型允许任意两个网络终端通过TCP连接实现结构化信息...
### XMPP协议(可扩展消息出席协议):核心知识点解析 #### 一、绪论 **1.1 概览** XMPP(可扩展消息和出席协议)是一种开放式的XML协议,旨在支持接近实时的消息传递、出席信息以及请求-响应服务。该协议的基本...
### 基于XMPP协议的多端即时通讯方案 #### 一、开发背景 ##### 1、国际背景 随着互联网技术的飞速发展,即时通信已成为人们日常沟通的重要方式之一。1996年,Mirabilis公司推出的世界首个即时通信系统ICQ,标志着...
这份"XMPP协议中文帮助文档"无疑为那些需要理解和应用XMPP技术的开发者提供了宝贵的资源。 XMPP的核心概念包括以下几个方面: 1. **XML流(XML Stream)**:XMPP的通信基础是XML流,它是一个持续的双向通道,允许...
在本文中,我们将深入探讨如何使用C#语言实现XMPP协议,并通过一个名为"ConsoleXmpp"的示例项目进行实战演练。这个实例是专为Visual Studio 2010设计的,它能确保在Openfire服务器上实现可靠的通信。 首先,理解...
1. **XMPP协议基础**: - XMPP的核心是基于TCP/IP连接的客户端-服务器架构,用户通过客户端连接到服务器进行消息交换。 - 协议分为两部分:即时消息(IM)和存在状态(Presence),允许用户发送文本消息和了解其他...
**XMPP协议详解** XMPP(Extensible Messaging and Presence Protocol,可扩展消息与存在协议)是一种基于XML的开放标准通信协议,主要用于实时双向通信,如即时消息(IM)、语音及视频通话、文件传输等。该协议...
《基于XMPP协议实现类似QQ的聊天应用》 在当今的移动互联网时代,即时通讯(Instant Messaging,IM)应用已经成为人们日常生活中不可或缺的一部分,而QQ作为国内最具影响力的IM平台之一,其功能强大、用户体验优秀...
在即时通讯工具的实现原理中,XMPP协议扮演着关键角色。客户端和服务器之间通过TCP/IP建立连接,使用XMPP协议进行数据交换。服务器作为中心节点,负责接收和转发消息,同时处理用户登录、状态更新和会话管理等功能。...
IMPanda是利用XMPP协议实现的一款客户端应用,它旨在提供基本的消息发送功能,并逐渐扩展其服务范围。在3Q大战(腾讯与奇虎360之间的互联网竞争)之后,开发者可能为了提供一种不受单一公司控制的通讯工具,选择了...
### .NET平台基于XMPP协议的即时消息服务端简单实现 #### 一、XMPP协议简介 XMPP(可扩展消息与存在协议)是一种基于XML的开放标准协议,主要用于即时通讯(IM)系统,文件传输,游戏引擎,物联网(IoT),以及...
【XMPP协议详解】 XMPP是由IETF(Internet Engineering Task Force)制定的开放标准,其设计目标是提供基于XML的即时通讯服务。XMPP的核心组件包括: 1. **Jabber服务器**:负责处理用户连接、消息路由和存储离线...
首先,理解XMPP协议的关键概念是JID(Jabber ID),它是XMPP网络中的用户身份标识,类似于电子邮件地址。在Android应用中,通常会要求用户输入其gmail邮箱,因为Google的Talk服务(现为Hangouts)就是基于XMPP协议的...
这个“xmpp协议demo”很显然是一个演示如何使用XMPP协议的项目,可能包含客户端和服务器端的实现。让我们深入探讨XMPP协议以及这个项目中的关键组成部分。 1. **XMPP协议**:XMPP最初设计用于即时通讯,但现在也被...
XMPP协议还包括网关的概念,网关允许XMPP与其他通信协议(如电子邮件、IRC、SMS等)互操作。虽然网关的功能是将XMPP数据转换为其他协议,反之亦然,但具体实现和通信细节不在XMPP核心规范中定义,而是由实现者根据...
【基于XMPP协议的Gloox底层库开发的即时通讯Qtalk源码】是一个使用C++编写的项目,它利用了Gloox库来构建一个即时通讯应用。Gloox库是一个开源的实现,完全遵从XMPP(Extensible Messaging and Presence Protocol)...
开源一个自己去年写的基于Xmpp协议的即时通讯社交软件(客户端+服务端) 本项目仅供参考,对于正在学习Xmpp以及javaweb后台的同学,可以看一下。 做这个项目纯属个人兴趣爱好,所以即时通讯做的不是很深,只是简单的...
《可扩展消息和出席信息协议(XMPP)中文版》文档详细阐述了XMPP协议的核心功能,这是一种基于XML流的实时通信协议,适用于构建即时消息和出席信息应用,以满足RFC 2779的需求。XMPP的设计目标是提供一个开放、可...