陈斌彬的技术博客

Stay foolish,stay hungry

XMPPFramework 常用扩展

XMPP : The Extensible Messaging and Presence Protocol

中文全称:可扩展通讯和表示协议

简介:可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示和需求响应服务中的XML数据元流式传输。XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。

XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。

传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片段发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。

下面是XMPPFramework几个常用到的扩展。

协议列表:

协议 协议简介

  • XEP-0009 在两个XMPP实体间传输XML-RPC编码请求和响应
  • XEP-0006 使能与网络上某个XMPP实体间的通信
  • XEP-0045 多人聊天相关协议
  • XEP-0054 名片格式的标准文档
  • XEP-0060 提供通用公共订阅功能
  • XEP-0065 两个XMPP用户之间建立一个带外流,主要用于文件传输
  • XEP-0082 日期和时间信息的标准化表示
  • XEP-0085 聊天对话中通知用户状态
  • XEP-0100 表述了XMPP客户端与提供传统的IM服务的代理网关之间交换的最佳实践
  • XEP-0115 广播和动态发现客户端、设备、或一般实体能力。
  • XEP-0136 为服务端备份和检索XMPP消息定义机制和偏好设置
  • XEP-0153 用于交换用户头像
  • XEP-0184 消息送达回执协议
  • XEP-0199 XMPP ping 协议
  • XEP-0202 用于交换实体间的本地时间信息
  • XEP-0203 用于延迟发送
  • XEP-0224 引起另一个用户注意的协议

Resource Reference