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来进行数据通讯。
分享到:
相关推荐
在Android平台上实现XMPP(Extensible Messaging and Presence Protocol)客户端是一项常见的任务,因为XMPP是一种广泛使用的即时通讯协议,尤其适用于构建实时通信应用,如聊天、视频通话等。本篇文章将深入探讨...
### XMPP学习入门笔记知识点详解 #### 一、XMPP简介 XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的即时通讯协议。它最初由Jabber发展而来,并于2004年成为国际标准(RFC 3920 和 RFC 3921)...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,最初源自开源项目Jabber。这个协议主要用于即时消息传递(IM)和在线状态(Presence)的探测。XMPP的设计理念是开放、可扩展,...
XMPP(Extensible Messaging and Presence Protocol,可扩展消息与存在协议)是一种基于XML的实时通信协议,被广泛用于即时通讯和在线状态管理。这个压缩包包含了一份关于XMPP核心概念的详细PDF文档以及一个名为...
XMPP(可扩展消息处理现场协议)是一种基于XML的实时通信协议,最初源自开源项目Jabber。它的设计目的是用于即时消息(IM)服务和在线状态检测。XMPP的核心概念是构建在TCP/IP协议之上的XML流,使得数据在客户端和...
这个“XMPP.rar_xmpp 通讯协议中文”压缩包包含了一个名为“XMPP.doc”的文档,很可能是关于XMPP协议的中文详细解读。 XMPP最初由Jabber项目开发,后来被IETF标准化,成为了RFC 6120、6121和6122。它的设计目标是...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛应用于即时消息、在线状态管理和多人聊天等场景。XEP(XMPP Extension Protocols)是XMPP的扩展协议,用来增加XMPP的基本功能...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准协议,用于即时通信(IM)和在线状态服务。这个“XMPP.zip”文件显然包含了关于如何使用XMPP实现即时通讯,尤其是仿照QQ功能的相关资源...
**XMPP (可扩展消息和出席协议)** 是一种基于XML的实时通信协议,起初由Jabber开源社区创建,后来成为Internet Engineering Task Force (IETF) 的即时消息和出席信息技术的一部分。RFC 3920是XMPP的核心协议文档,...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛应用于即时通讯、在线状态管理和聊天应用。在iOS平台上实现XMPP的注册功能,通常涉及到以下几个关键知识点: 1. **XMPP框架...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息和在线状态的传递。在本文中,我们将深入探讨XMPP服务器端的相关知识,包括其工作原理、协议规范、以及如何搭建...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息传递和在线状态管理。这个“xmpp通讯协议demo”是展示如何在Android平台上利用XMPP协议进行即时通讯的一个示例...
xmpp协议和xmpp扩展协议,chm格式
### XMPP正式RFC标准3920:可扩展的消息与出席信息协议 #### 概述 **XMPP正式RFC标准3920**是互联网工程任务组(IETF)发布的一项标准,它定义了可扩展消息与出席信息协议(XMPP)的核心功能,该协议允许在任意两...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛应用于即时通讯、VoIP、在线状态管理等领域。作为一个专业的IT行业大师,我很高兴为你深入解析XMPP客户端开发库及其相关知识...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息和在线状态的传递。在本文中,我们将深入探讨如何使用C#语言实现XMPP协议,并通过一个名为"ConsoleXmpp"的示例...
【XMPP简介】 XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,最初由Jabber项目创建,后来被IETF接纳为互联网标准草案。它旨在提供安全、可扩展且灵活的即时通讯(IM)和在线状态...
基于XMPP的多方通信系统研究与实现.pdf 基于XMPP的P2P即时通信系统的研究及实现.kdh 基于SIMPLE和XMPP协议的移动IM研究.pdf XMPP研究与应用.pdf XMPP协议研究及其在IM系统群组通信中的应用.pdf XMPP协议分析及客户端...
XMPP协议分析,xmpp是即时通讯IM中比较普遍的应用
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...