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