- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件及应用]XMPP 协议笔记
Jabber?协议?概述
Peter Saint-Andre
HYPERLINK mailto:stpeter@ stpeter@
1.4版Jabber服务协议的概述
1.?介绍
????Jabber是一个由开源社区发起并领导开发的即时消息和在线状态的系统。Jabber系统和其它即时消息(IM)服务的一个功能上的差别在于Jabber拥有开放的XML协议。在保持Jabber1.0版本有关消息核心以及在线状态的协议的基础上,增加了一些必要的扩展。本文档将对Jabber服务器1.4版的Jabber协议进行介绍。
????在XML上下文的数据流中,Jabber开放的XML协议包括三个顶级XML元素:
????????????message/
????????????presence/
????????????iq/(info/query)
每一个元素通过属性和名字空间包含大量的数据,这些属性和名字空间都是Jabber的组成部分(但不包括为特殊应用的名字空间应用)。下面将描述整个Jabber协议。如果您想获得关于Jabber系统结构的信息,请查看名为Jabber技术概述的文档( HYPERLINK /general/html/overview.html /general/html/overview.html)。
2. XML流
????一个Jabber会话由两个平行的XML流组成,一个从客户端到服务器端,另一个从服务端到客户端。当一个Jabber客户端连接上一个Jabber服务器时,这个客户端将发起一个客户端-服务器的XML流,同时作为响应,服务器也将发起一个服务器-客户端的XML流。所有message/,presence/,以及iq/元素都被放在这些XML流的上下文中。下面就有一个例子:
?
????SEND:?xml version=”1.0”?encoding=”UTF-8”??
????SEND:stream:stream
SEND:to=’’
SEND:xmlns=’jabber:client’
SEND:xmlns:stream=’/streams’
RECV:stream:stream
RECV:xmlns:stream=’/streams’
RECV:id=’39ABA7D2’
RECV:xmlns=’jabber:client’
RECV:from=’’
(XML for user session goes here)*
SEND:/stream:stream
RECV:/stream:stream
?
*注意:必须等到当一个iq/元素(特别指一个’jabber:iq:auth’名字空间下的query/元素)发送了认证信息后,服务器才会同意用户会话进行工作。
3. message/元素
????message/元素是Jabber开放XML协议三个顶级元素中的一个。它被用来包含两个Jabber用户间互相发送消息内容,或者两个Jabber IDs之间更一般的消息(因为,通过神奇的传输器,另一个IM系统可以用Jabber ID代替, HYPERLINK mailto: )。
3.1.?消息类型-“type”属性
????Jabber支持几种不同的消息,这些消息通过message/的“type”属性来进行区分。下面就是“type”属性的有效值:
3.1.1. [default](不设置“type”属性)
????表示本消息是一个普通消息。默认的情况下,客户端在没有设置属性时,将消息类型定为普通消息。
????例子:
?
message to=romeo@/orchard
bodyWherefore art though Romeo?/body
/message
3.1.2.type=”chat”
????表示消息需要被一个接一个的显示在聊天界面上(一般是一条接一条的界面,不过实际界面可以被用户自己定义。)
????例子:
?
????message to=romeo@/orchard type=chat
bodyWherefore art though Romeo?/body
/message
3.1.3.type=”error”
????表示消息被描述成一个错误条件。实际的错误在消息中用一个error/元素来描述。一个message/元素包括一个body/和一个error/。下面的例子将演示,当Juliet对一个不存在的用户发送一个“hi”的消息时,将收到的包体:
????例子:
?
message
to=juliet@
from=flomeo@
type=error
bodyhi/body
error code=404Not Found/error
/messag
您可能关注的文档
- [自然景观]精美实拍背景素材一.ppt
- [自然科学]08基础有机化学课件--三份考卷.ppt
- [自然科学]12-2 平面简谐波的波函数.ppt
- [自然科学]2009年重点建设项目档案培训幻灯.ppt
- [自然科学]03第二次全国土地调查城镇土地调查数据汇总业务培训扈传荣_2009-10.ppt
- [自然科学]004科泰柴油发电机组结构、原理介绍.ppt
- [自然科学]90tLF钢包精炼炉设备简介1.ppt
- [自然科学]5测量不确定度和误差简介60张.pdf
- [自然科学]AQIS Wengfu Rev1.doc
- [自然科学]DSS第1章.ppt
- [计算机软件及应用]U890UAP平台培训.ppt
- [计算机软件及应用]ZONEALARM_80安装说明.doc
- [计算机软件及应用]web of knowledge全解.ppt
- [计算机软件及应用]X5用户使用手册.pdf
- [计算机软件及应用]《linux软件工程师C语言实用教程》第1章.ppt
- [计算机软件及应用]Word_2003_基础教程.ppt
- [计算机软件及应用]《敏捷_软件测试管理的挑战和机会》-+蔡为东+ChinaTest2012.pdf
- [计算机软件及应用]《基于NET的宿舍管理系统的设计与实现》毕业论文.doc
- [计算机软件及应用]为新数据库创建表 Training Presentation - Create tables for a new database.ppt
- [计算机软件及应用]二级C++真题和答案.doc
文档评论(0)