`
dodoflying
  • 浏览: 178603 次
社区版块
存档分类
最新评论

XMPP RFC阅读笔记

    博客分类:
  • IM
阅读更多
http://dev.csdn.net/article/60/60495.shtm

以下所有内容均是根据自己的记忆和理解,如有不正确甚至谬误之处,请多见谅。

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流。

4、举个例子看看所谓的XML流是什么样子的?
客户端:<!---->
   <stream:stream></stream:stream>       to='example.com'
       xmlns='jabber:client'
       xmlns:stream='http://etherx.jabber.org/streams'
       version='1.0'>
服务器:<!---->
   <stream:stream></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"></message>               to='romeo@example.net'
              xml:lang='en'>
客户端: Art thou not Romeo, and a Montague?
客户端:
服务器:<message from="romeo@example.net"></message>               to='juliet@example.com'
              xml:lang='en'>
服务器:Neither, fair saint, if either thee dislike.
服务器:
客户端:
服务器:
以 文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从<stream></stream>到构成了一个完整的 XML文档。其中的stream标签就是所谓的XML Stream。在<stream></stream>与中间的那些<message></message>...< /message>这样的XML元素就是所谓的XML Stanza(XML节)。XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,任何时候都有可能从一个方发信给另外一方。通信的最后阶段是关闭 流,关闭TCP/IP连接。
分享到:
评论
1 楼 wuhua 2007-01-16  
兄弟不错。支持。希望您自己可以定义出自己的通信格式。
关注中

相关推荐

    xmpp rfc3920 3921 汉化。

    xmpp rfc3920 3921;汉化来源jabbercn.org.

    XMPP-RFC3921(中文)

    ### XMPP-RFC3921(中文)关键知识点解析 #### 一、绪论与概览 **标题与描述解读:** - **标题**:“XMPP-RFC3921(中文)”直接指出了该文档是关于XMPP(可扩展消息与出席协议)的标准规范文档,特别注明为中文版,...

    XMPP RFC3920 RFC3921 协议中文版

    XMPP RFC3920 RFC3921 协议中文版,内附两协议英文版以便需要时作对照只用 欢迎加入XMPP开发爱好者群:4415663

    xmpp rfc 3920

    ### XMPP RFC 3920 核心知识点解析 #### 一、概述与背景 **XMPP(Extensible Messaging and Presence Protocol)**是一种开放的、基于XML的协议,主要用于实时消息传递、在线状态(即“presence”)以及请求/响应...

    xmpp之RFC3921

    ### XMPP之RFC3921:深入了解即时通讯与出席信息协议 #### 一、引言 《XMPP之RFC3921》是互联网官方协议标准中的一个重要文档,它详细阐述了可扩展消息和出席信息协议(XMPP)的核心功能及其实现方式。XMPP是一种...

    XMPP正式RFC标准3920

    ### XMPP正式RFC标准3920:可扩展的消息与出席信息协议 #### 概述 **XMPP正式RFC标准3920**是互联网工程任务组(IETF)发布的一项标准,它定义了可扩展消息与出席信息协议(XMPP)的核心功能,该协议允许在任意两...

    xmpp协议详解RFC3920中文版(chm)

    xmpp协议详解RFC3920中文版 chm文件,电子书可用,已经正确的更新文档内的连接。对内容没有更改。

    XMPP-RFC3920中文

    RFC 3920是XMPP的核心协议文档,详细定义了其核心功能和操作机制。 ### 1. **XMPP协议概述** XMPP的设计目标是通过XML流实现实时信息交换,用于即时消息、出席状态更新以及请求-响应服务。它的主要特点在于其可扩展...

    XMPP协议学习-RFC 3920

    该协议的核心规范在RFC 3920和RFC 3921中定义,同时还有许多扩展功能在XMPP extensions中描述。 RFC 3920,全称为“Extensible Messaging and Presence Protocol (XMPP): Core”,它定义了XMPP的核心特性。这一文档...

    XMPP-RFC3921.rar_doc_rfc3921_xmpp

    RFC3921是XMPP的核心规范之一,详细定义了用户间的即时消息与存在状态交换机制。 **RFC3921简介** RFC3921,全称为"Instant Messaging and Presence Protocol Version 2.0",是XMPP的第二版协议标准。这个标准主要...

    XMPP-RFC3921中文.doc

    《深入解析XMPP-RFC3921:即时消息与出席信息的标准协议》 XMPP-RFC3921,全称《可扩展的消息和出席信息协议:即时消息和出席信息》,是由网络工作组的Saint-Andre编写的,于2004年10月由Jabber软件基金会发布。该...

    XMPP学习入门笔记

    ### XMPP学习入门笔记知识点详解 #### 一、XMPP简介 XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的即时通讯协议。它最初由Jabber发展而来,并于2004年成为国际标准(RFC 3920 和 RFC 3921)...

    xmpp RFC6120

    xmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFCxmppRFC

    XMPP-RFC3920中文说明

    本文定义了可扩展消息和出席信息协议(XMPP)的核心功能,这个协议采用 XML 流实现在任意两个网络终端接近实时的交换结构...扩展的框架来交换XML数据,它主要用来建立即时消息和出席信息应用以实现 RFC 2779 的需求。

    中文版 xmpp协议之 可扩展消息出席协议:核心 RFC3920

    XMPP协议最初是由Jabber开源社区在1999年开发的,后来在2002年被XMPP工作组改写并提交至IETF(Internet Engineering Task Force,互联网工程任务组),进而演变成RFC3920标准。 XMPP协议定义了核心的即时消息与出席...

    xmpp-RFC3920中文翻译版.doc

    RFC3920定义了XMPP的核心部分,即XMPP Core,它为即时消息和在线状态的应用提供了基础性的框架和支持。 #### 二、XMPP核心功能 **核心功能**:根据RFC3920文档,XMPP的核心功能包括XML流、TLS(Transport Layer ...

    RFC 3921中文版(XMPP协议)

    **XMPP协议详解** XMPP(Extensible Messaging and Presence Protocol,可扩展消息传递及存在协议)是一种基于XML的...通过阅读和理解RFC 3921中文版,开发者和系统管理员可以更好地设计和实现XMPP相关的应用和服务。

Global site tag (gtag.js) - Google Analytics