现在的位置: 首页 > 综合 > 正文

RFC3920可扩展消息出席协议(XMPP):核心 10 处理XML节的服务器规则

2013年01月08日 ⁄ 综合 ⁄ 共 1537字 ⁄ 字号 评论关闭

10. 处理XML节的服务器规则
      兼容服务器实现必须确保有序处理任两实体间的XML节。
超出有序处理的需求,每个服务器实现将包含它自己的“传送树”用于处理它所接收的节。那样的一个树决定是否一个节需要被路由到其它域,内部处理,或传送到与被连节点相关的资源。以下规则应用:

10.1 无‘to’地址
      如果节拥有无‘to’属性,服务器应当代表发送它的实体处理它。因为所有从其它服务器收到的节必须拥有一个‘to’属性,此规则仅应用于从一个连到服务器的已注册实体(如客户端)收到的节。如果服务器收到一个无‘to’属性的出席节,服务器应当广播它到被订阅到发送实体的出席实体,如果可利用的话(用于定义在[XMPP-IP]即时消息与表示应用的出席广播的语义。)如果服务器接收一个类型为“get”或“set”的没有‘to’属性的IQ节,并且它理解认证节内容的命名空间,它必须也能代表发送实体处理节或返回给发送实体(在“process”意思处被认证命名空间的语义决定)一个错误。

10.2 外部域
      如果JID的域标识符部分的主机包含在‘to’属性中并不匹配服务器本身的已配置主机名或子域中的已配置主机之一,服务器应当路由节到外部域(服从本地服务提供与相关内部域通信的安全策略)。有两种可能情况:

      一个服务器到服务器流已在两域间存在:发送者的服务器为现存流的外部域路由节到已授权服务器。

      两域间存在无主机到主机流:发送者的服务器(1)解析外部域(定义在以下服务器到服务器通信(节14。4))的主机名,(2)在两域间(定义在如下使用TLS(节5)并且使用SASL(节6))协商服务器到服务器的流,并(3)为通过新近-建立的流的外部域路由节到授权服务器。

      如果路由到接收者的服务器不成功,发送者的服务器必须返回一个错误给发送者;如果接收者的服务器能被联系但被接收者的服务器传送到接收者是不成功的,接收者的服务器必须经由发送者的服务器返回一个错误给发送者。

10.3 子域
      如果包含在‘to’属性中的JID域标识符部分的主机名匹配服务器本身已配置主机名之一的子域,服务器必须也处理节本身或路由节到一个特别的对那个子域(如果子域被配置)有责任的服务,或返回一个错误给发送者(如果子域不被配置)。

10.4 仅有域或特别资源
      如果包含在‘to’属性中的JID域标识符部分的主机名匹配服务器本身的一个已配置主机名,并且包含在‘to’属性中的JID是<domain>或<domain/resource>形式,服务器(或在内的一个已定义资源)必须合乎节种类处理节或返回错误节给发送者。

10.5 同域中的节点
      如果包含在‘to’属性中的JID域标识符部分的主机名匹配服务器本身的一个已配置主机名,并且包含在‘to’属性中的JID是<node@domain>或<node@domain/resource>形式,服务器应当传送节到由包含在‘to’属性中的JID表达的节的意向接收者。以下规则应用:

1) 如果JID包含一个资源标识符(例:是<node@domain/resource>形式)并且,这儿存在一个已连接资源匹配全JID,接收者的服务器应当传送的节到确切匹配此资源标识符流或会话。
2) 如果JID包含一个资源标识符并且这儿存在匹配全JID的无连接资源,接收者的服务器应当返回一个<service-unavailable/>节错误给发送者。
3) 如果JID是<node@domain>形式,并且这儿存在为此结点的至少一个已连接资源,接收者的服务器应当传送节到连接资源的至少一个,根据应用-特殊规则(一套传送规则,用于定义在[XMPP-IM]即时消息与出席应用)。

抱歉!评论已关闭.