XMPP 3920 最靠谱的中文翻译文档 下载本文

ZT0iT0E2TUc5dEVRR20yaGgiLGNub25jZT0iT0E2TUhYaDZWcVRyUmsiLG5j

PTAwMDAwMDAxLHFvcD1hdXRoLGRpZ2VzdC11cmk9InhtcHAvZXhhbXBsZS5vcmciLHJlc3BvbnNlPWQzODhkYWQ5MGQ0YmJkNzYwYTE1MjMyMWYyMTQzYWY3LGNoYXJzZXQ9dXRmLTgK 解码响应是:

username=\ nonce=\ nc=00000001,qop=auth,digest-uri=\ response=d388dad90d4bbd760a152321f2143af7,charset=utf-8 步7:Server2发送另一个[BASE64]编码挑战给Server1: cnNwYXV0aD1lYTQwZjYwMzM1YzQyN2I1NTI3Yjg0ZGJhYmNkZmZmZAo= 解码挑战是:

rspauth=ea40f60335c427b5527b84dbabcdfffd 步7(替换):Server2返回错误给Server1:

步8:Server1响应挑战:

步8(替换):Server1终止协商:

步9:Server2通知Server1成功认证:

步9(替换):Server2通知Server1认证失败:

步10:Server1初始化一个新流给Server2:

xmlns='jabber:server'

xmlns:stream='http://etherx.jabber.org/streams' to='example.com' version='1.0'>

步11:Server2通过发送一个流头响应Server1,并伴随着其它特征(或空特征元素):

xmlns='jabber:client'

xmlns:stream='http://etherx.jabber.org/streams' from='example.com' id='s2s_345' version='1.0'>

7.资源绑定

接收实体SASL协商(6)之后,初始实体可能想要或是需要绑定一个特殊资源至那个流。普通的,这仅用于客户端:为了遵从在此指定的寻址格式(3)与节传 送规则(10),必须有一个资源标识符联合客户端的(即可以由服务器产生也可以由客户应用提供);这确保基于流使 用的地址是“全JID”形式

根据在SASL协商中接收的一个成功指示,客户端必须发送一个新流头给服务器,服务器必须用可利用流特征列表中的内容来响应。特别的,如果服务器需要客户 端在SASL成功协商后,将资源绑定到流上,它必须包括一个由在流特征列表中的

'urn:ietf:params:xml:ns:xmpp-bind'命 名空间限定的空元素。成功SASL协商后(不是前),它通过发送响应流的头表示给客户端:

服务器广告资源绑定特征给客户端:

xmlns='jabber:client'

xmlns:stream='http://etherx.jabber.org/streams' id='c2s_345' from='example.com' version='1.0'>

根据这样的通知,资源绑定是需要的,客户端必须靠送给服务器一个包含由'urn:ietf:params:xml:ns:xmpp-bind' 命名空间限定的,类型“set”(参考IQ语义(9.2.3))的IQ节,将资源绑定到流上。

如果客户端希望允许服务器代表自己产生资源标识符,它发送一个类型“set”的IQ节,包含一个空元素:

客户端请求服务器绑定资源:

支持资源绑定的服务器必须能代表一个客户端产生一个资源标识符。由服务器产生的资源标识符必须对是唯一的。如果客 户端希望指定资源标识符,它发送一个类型为“set”的IQ节,包含所需资源的标识符,作为元素子元 素的XML字符数据。

客户端绑定一个资源:

someresource

一旦服务器为客户端产生了一个资源标识符或是接受了由客户端提供的资源标识符,它必须返回一个类型为“result”的IQ节给客户端,必须包含一个子元素,来为服务器决定的已连接资源指定全JID:

服务器通知客户端成功资源绑定:

somenode@example.com/someresource

服务器应当接受由客户端提供的资源标识符,但可能用一个服务器产生的资源标识符覆盖它;在这种情况,服务器不应当返回一个节错误 (例:)给客户端,取而代之,应当以以上显示的IQ结果,传达产生的资源标识符给客户端。

当客户端提供一个资源标识符,以下节错误条件是可能的(参考节错误(9.3)): 1) 提供的资源标识符不能被与Resourceprep(附录B)一致的服务器处理。

2) 客户端不允许绑定资源到流上(例:因为结点或用户已经达到了在被允许的连接的资源的数目)。

3) 已提供资源标识符已经使用,但服务器并不允许用同样的标识符绑定多连接资源。

用于这些错误条件的协议显示如下。

资源标识符不能被处理:

someresource