XMPP工作原理 _原创文档.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

XMPP协议工作原理

在IETF中,把IM协议划分为四种协议,即即时信息和出席协议(InstantMessagingand

PresenceProtocol,IMPP)、出席和即时信息协议(PresenceandInstantMessaging

Protocol,PRIM)、针对即时信息和出席扩展的会话发起协议(SessionInitiationProtocolfor

InstantMessagingandPresenceLeveragingExtensions,SIMPLE),以及可扩展的消息出

席协议(XMPP)。最初研发IMPP也是为了创建一种标准化的协议,但是今天,IMPP已经

发展成为基本协议单元,定义所有即时通信协议应该支持的核心功能集。

XMPP地址格式

一个实体在XMPP网络结构中被称为一个接点,它有唯一的标示符jabber

identifier(JID),即实体地址,用来表示一个Jabber用户,但是也可以表示其

他内容,例如一个聊天室.一个有效的JID包括一系列元素:(1)域名(domain

identifier);(2)节点(nodeidentifier);(3)源(resourceidentifier).它

的格式是node@domain/resource,node@domain,类似电子邮件的地址格

式.domain用来表示接点不同的设备或位置,这个是可选的,例如a在Server1

上注册了一个用户,用户名为doom,那么a的JID就是doom@serverl,在发送

消息时,指明doom@serverl就可以了,resource可以不用指定,但a在登录到

这个Server时,fl的JID可能是doom@serverl、exodus(如果a用Exodus软件

登录),也可能是doom@serverl/psi(如果a用psi软件登录).资源只用来识别

属于用户的位置或设备等,一个用户可以同时以多种资源与同一个XMPP服务器

连接。

XMPP消息格式

XMPP中定义了3个顶层XML元素:Message、Presence、IQ,下面针对

这三种元素进行介绍。

Message

用于在两个jabber用户之间发送信息。Jsm(jabber会话管理器)负责满足所有的

消息,不管目标用户的状态如何。如果用户在线jsm立即提交;否则jsm就存储。

To:标识消息的接收方。

from:指发送方的名字或标示(id)o

Text:此元素包含了要提交给目标用户的信息。

结构如下所示:

messageto=‘lily@/contact’type=’chat’

body你好,在忙吗/body

/message

Presence

用来表明用户的状态,如:online、away、dnd(请勿打扰)等。当用户离线或改

变自己的状态时,就会在stream的上下文中插入一个Presence元素,来表明

自身的状态.结构如下所示:

presence

From=‘lily@/contact’

To=‘yaoman@/contact

statusOnline/status

/presence

presence元素可以取下面几种值:

Probe:用于向接受消息方法发送特殊的请求

subscribe:当接受方状态改变时,自动向发送方发送presence信息。

IQ

一种请求/响应机制,从一个实体从发送请求,另外一个实体接受请求,并进行

响应.例如,client在stream的上下文中插入一个元素,向Server请求得到自

己的好友列表,Server返回一个,里面是请求的结果.

iq主要的属性是type。包括:

Get:获取当前域值。

Set:设置或替换get查询的值。

Result:说明成功的响应了先前的查询。

Error:查询和响应中出现的错误。

结构如下所示:

iqfrom=‘lily@/contact’id=’1364564666’Type=’result’

XMPP工作机制:

例如:一个终端名字是Remeo,通过服务器montague.lit与其他的用户相连,其

他的用户

通过服务器juliet@capulet.lit建立连接。

第一步开始通过发送一个

文档评论(0)

LLFF222 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档