XMPP协议及其扩展简介.doc
文本预览下载声明
XMPP协议
Extensible Messaging and Presence Protocol即可扩展消息与在线感知协议,它是一个基于XML流的即时通信协议。由Jabber工作组于1999年开始研发,2003(有待确认)被IETF工作组确立为标准的即时通信协议。此后又经过几年的发展与完善,逐渐形成了现在的协议框架[[i]]。
核心文档
Extensible Messaging and Presence Protocol (XMPP): Core
这里XMPP协议框架中最重要的文档,它定义了XMPP协议框架下应用的网络架构,这是一个非常开放的框架,从而使XMPP协议的极具可扩展性、极具开放性。它引入了XML Stream与XML Stanza,并规定XMPP协议在通信过程中都使用XML标签。使用XML标签从根本上说是由于协议开放性与扩展性的需要。此外,在通信的安全方面,把TLS安全传输机制与SASL认证机制与引入到内核,与XMPP进行无缝的连接,为协议的安全性、可靠性奠定了基础。
Core文档还规定了错误的定义及处理、XML的使用规范、JID的定义、命名规范等等。所以这是所有基于XMPP协议的应用都必需支持的文档[[ii]]。
Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence
Core文档中只对支持XMPP协议的应用作出了最基本的规范,并没有对消息与在线状态进行详细的定义。从应用的角度来讲,Core文档(RFC3920)中定义的是从连接服务器到用户上线之前的工作。
本节中讨论的文档,规定的是用户成功登陆到服务器之后,发布更新自己的在线、好友管理、发送即时聊天消息等等业务。所有的这些业务都是通过3种基本的XML Stanza来完成的,IQ Stanza, Presence Stanza, Message Stanza。
RFC3921还对阻塞策略进行了定义,定义是多种阻塞方式。
可以说,RFC3921是RFC3920的充分补充。两个文档结合起来,就形成了一个基本的IM通信协议平台,在这个平台上可以开发出各种各样的应用。XMPP把复杂的具体的应用通过扩展来规定[[iii]]。
其他文档
Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)
Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP)
(Todo增加对它的说明)
XMPP协议的扩展框架
RFC3920与RFC3921两个核心文档奠定了XMPP协议框架的基础,在这个框架上可以方便的扩展出各种各样的应用。如果说核心的文档规定的XMPP的骨架的话,那么这些扩展就是XMPP应用上的肉。
Jabber Software Foundation对扩展进行了规范。如果一个扩展协议可发布成为公开的扩展应用,那么它必需遵循XMPP Extension Protocols[[iv]]。到目前为止,已经有很多的应用扩展,这些扩展涉及到实际IM系统中需的各种需求。
扩展协议的标准化进程
Todo:查阅有关文档,在此做简要说明
主要可分为以下几个方面
基础应用扩展
[1] XEP-0004 Data Forms
[2] XEP-0030 Service Discovery
[3] XEP-0076 Malicious Stanzas
[4] XEP-0053 XMPP Registrar
[5] XEP-0090 Entity Time
[6] XEP-0092 Software Version
[7] XEP-0114 Jabber Component Protocol
[8] XEP-0115 Entity Capabilities
[9] XEP-0124 HTTP Binding
[10] XEP-0138 Stream Compression
[11] XEP-0154 User Profile
IM应用扩展
[1] XEP-0045 Multi-User Chat
[2] XEP-0047 In-Band Bytestreams (IBB)
[3] XEP-0049 Private XML Storage
[4] XEP-0055 Jabber Search
[5] XEP-006
显示全部