第一范文网 - 专业文章范例文档资料分享平台

XMPP-RFC3921中文

来源:用户分享 时间:2025/11/16 4:57:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

子元素

如 扩展名字空间extended namespaces(第二章第四节)所述, 一个出席信息节可以(MAY)包含任何适当名字空间的子元素.

和缺省名字空间声明一致, 缺省出席信息节的名字空间是'jabber:client' 或 'jabber:server', 定义了某几个允许的出席信息节的子元素. 如果出席信息节的类型是 \它必须(MUST)包含一个子元素; 详细情况, 见[XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]. 如果出席信息节不拥有'type'属性,它可以(MAY)包含以下任何子元素(注意子元素可以(MAY)在一个类型为\或\出于历史原因)的出席信息中被发送):

1. 2. 3.

展示

可选的(OPTIONAL)元素包含非人类可读的XML字符数据表达一个特定的实体或资源的特定的可用性状态. 一个出席信息节不能(MUST NOT)包含多于一个元素. 元素不能(MUST NOT)拥有任何属性. 如果提供了, 这个XML字符数据值必须(MUST)是以下之一(额外的可用性类型可以通过出席信息的适当名字空间来定义):

? away -- 实体或资源临时离开. ? chat -- 实体或资源在聊天中是激活的. ? dnd -- 实体或资源是忙(dnd = \不要打扰\

? xa -- 实体或资源是长时间的离开(xa = \长时间离开\

如果没有提供元素, 实体被假定是在线和可用的.

状态

可选的(OPTIONAL)元素包含XML字符数据表达一个可用性状态的自然语言描述. 它通常用于联合show元素以提供可用性状态的详细描述(例如, \会议中\元素不能(MUST NOT)拥有任何属性,除了'xml:lang'属性. 元素可以(MAY)包含多个实例但是每个实例的'xml:lang'属性值必须各不相同.

9

优先权

可选的(OPTIONAL)元素包含非人类可读的XML字符数据指明资源的优先级别. 这个值必须(MUST)是一个介于-128和+127之间的数字. 一个出席信息小节不能(MUST NOT)包含超过一个的元素. 元素不能(MUST NOT)拥有任何属性. 如果没有优先权被提供,一个服务器应该(SHOULD)认为优先级是零. 关于即时消息和出席信息系统中节路由的优先级的语义, 参考 处理XML节的服务器规则Server Rules for Handling XML Stanzas(第十一章).

IQ语法

IQ节提供一个结构化的请求-应答机制. 这个机制的基本语义学(例如, 'id'属性是必需的(REQUIRED))定义在[XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920], 然而完成特定用例所需要的特定语义的所有案例定义在扩展名字空间extended namespace(第二章第四节)之中(注意'jabber:client'和'jabber:server'名字空间没有定义除通用的子元素之外的任何IQ节子元素). 本文定义了两个这样的名字空间,一个用于 名册管理Roster Management(第七章)而另一个用于 屏蔽通信Blocking Communication(第十章); 无论如何, 一个IQ节可以(MAY)包含符合任何扩展名字空间的结构化信息.

扩展名字空间

因为在\或\名字空间中定义的三个XML节类型(也包括它们的属性和子元素)提供了一个基本功能级用于消息和出席信息, XMPP使用XML名字空间来扩展节用于提供额外的功能, 所以一个消息或出席信息节可以(MAY)包含一个或更多可选的子元素表达扩展消息含义的内容(例如, 一个XHTML格式版本的消息主体), 并且一个IQ节可以(MAY)包含一个这样的子元素. 这个子元素可以(MAY)有任何名字并且可以(MUST)拥有一个'xmlns'名字空间声明(不同于\\或\http://etherx.jabber.org/streams\定义所有包含在子元素中的数据.

对于任何特定的扩展名字空间的支持在任何实现中的一部分是可选的(OPTIONAL)(除了在这里定义的扩展名字空间以外). 如果一个实体不理解这样一个名字空间, 实体被期望的行为依赖于这个实体是(1) 接收者 或 (2) 一个正在路由到接收者的实体

接收者: 如果一个接收者接收了一个包含不理解的子元素的节, 它应该(SHOULD)忽略那个特定的XML数据,例如, 它应该(SHOULD)不处理它或不向用户或相关的应用程序(如果有的话)显示它. 具体来说:

? 如果一个实体接收了一个消息或出席信息节包含一个不理解的名字空间, 在

节的未知名字空间的这部分应该(SHOULD)被忽略.

10

? 如果一个实体接收了一个消息节中仅有的一个子元素是不理解的, 它必须

(MUST)忽略整个节.

? 如果一个实体接收了一个类型\或\的IQ节包含一个不理解的子元素,

这个实体应该(SHOULD)返回一个类型为\的错误条件的IQ节.

路由: 如果一个路由实体(通常是一个服务器)处理一个包含它不理解的子元素的节, 它应该(SHOULD)原封不动地把它转给接收者而忽略相关的XML数据.

会话的建立

绝大部分基于XMPP的消息和出席信息应用是由一个客户端-服务器体系结构实现的,为了参加期望的即时消息和出席信息活动,需要客户端在服务器上建立一个会话. 无论如何, 在客户端能够建立一个即时消息和出席信息会话之前有很多前提必须(MUST)满足. 它们是:

1. 流验证 -- 客户端在尝试建立一个会话或发送任何XML节之前必须(MUST)完

成[XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]中定义的流验证.

2. 资源绑定 -- 完成流验证之后, 一个客户端必须(MUST)绑定一个资源到流上,

使得客户端的地址符合格式, 然后实体以

[XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]规定的术语来说就是一个 已连接的资源\

如果一个服务器支持会话, 在完成一个[XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]定义的流验证之后它必须(MUST)在它向客户端声明的流特性中包含一个符合'urn:ietf:params:xml:ns:xmpp-session'名字空间的元素: 服务器向客户端声明会话确定特性:

xmlns='jabber:client'

xmlns:stream='http://etherx.jabber.org/streams' id='c2s_345'

from='example.com' version='1.0'>

收到需要会话确立的通知之后(并且是在完成资源绑定之后), 客户端如果想使用即时消息和出席信息功能必须(MUST)建立一个会话; 它向服务器发送一个符合'urn:ietf:params:xml:ns:xmpp-session'名字空间的类型为\并包含空的子元素的IQ节以完成这一步骤:

步骤 1: 客户端向服务器请求会话:

11

步骤 2: 服务器通知客户端会话已经建立:

建立会话之后, 一个 已连接的资源([XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]术语)就被称为一个 激活的资源\

许多错误条件是可能的. 例如, 服务器可能遭遇一个内部条件阻碍了它建立会话, 用户名或授权身份可能缺乏建立会话的许可, 或同一个名字相关的这个资源ID已经有一个激活的资源.

如果服务器遭到一个内部条件阻碍了它建立会话, 它必须(MUST)返回一个错误. 步骤 2 (替代): 服务器应答一个错误(内部服务器错误):

xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>

如果用户名或资源不被允许建立一个会话, 服务器必须(MUST)返回一个错误(例如, 被禁止).

步骤 2 (替代): 服务器应答错误(用户名或资源不被允许建立一个会话):

xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>

如果已经同一名字已经存在一个激活的资源,服务器必须(MUST) (1) 终止这个激活的资源并允许新请求的会话, 或者 (2) 不允许新申请的会话并继续激活的资源. 服务器做哪一步取决于具体的实现, 尽管建议的(RECOMMENDED)实现 情景 #1. 在 情景 #1, 服务器应该(SHOULD)发送一个流错误给激活的资源, 终止用于这个激活的资源的XML流和相关的TCP连接, 并返回一个类型为\的IQ节(表示成功)给新申请的会话. 在 情景 #2, 服务器应该(SHOULD)发送一个节错误给新申请的会话但是继续那个连接的XML流使得新申请的会话在发送另一个会话建立申请之前有机会协商出一个不冲突的资源ID.

步骤 2 (替代): 服务器通知现有的激活的资源 资源冲突(情景 #1):

12

搜索更多关于: XMPP-RFC3921中文 的文档
XMPP-RFC3921中文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2679a9sjhs44p5c1brnr_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top