XEP-0198 流管理(Stream Management)中文翻译

RFC 6120中文链接地址:点击打开链接

参考:点击打开链接

1.介绍

XMPP Core 用XMPP定义了流的XML技术(也就是流的建立和终止,包括认证和加密)。但是核心的XMPP协议并没有为管理一个灵活的XML流提供工具。

Stream Management背后的基本概念是,初始化的实体(一个服务端或者客户端)和接收的实体(一个服务端)可以为更灵活的管理stream交换“命令”。下面两条 Stream Management的特性被广泛的关注,因为它们可以提高网络的可靠性和终端用户的体验:

*Stanza确认(Stanza Acknowledgements) ——  能够确认一段或者一系列Stanza是否已被好友接收。

*流恢复(Stream Resumption) ——  能够迅速的恢复(resume)一个已经被终止的流。

Stream management 用较的短XML元素实现了这些特性,这些XML元素是在流的标准上的。这些元素并不是XMPP意义上的“stanzas”(也就是说,不是<iq/>, <message/>, or <presence/>这样的stanzas,stanzas在RFC 6120中有定义),它们不会在Stream management中被counted或者被acked,因为它们是为管理stanzas本身而存在的。

Stream management是在XML流的标准上使用的。检查一个给定的流TCP的连通性的时候,特别推荐使用whitespace keepalives(见RFC 6120)、XMPP Ping (XEP-0199) 或者TCP keepalives。对比Stream management,高级消息处理Advanced Message Processing (XEP-0079)和消息回执Message Delivery Receipts (XEP-0184),定义了ack,它可以通过多个流实现端对端的传输;这些特性在一些特殊情况中是有用的,但是没必要去检查在两个xmpp实体之间直接传递的流。

注:Stream management可以用于服务端到服务端、客户端到服务端的流。但是,为了方便,本规范只讨论客户端到服务端的流。同样的原则也适用于服务器到服务器的流。(在本文档中,以“C:”开头的都是由客户端发送的,由“S:“开头的都是由服务器发送的)。

2. 流特性(Stream Feature)

服务端返回一个流的header连同流的features给客户端,这些features包括一个<sm/>元素“urn:xmpp:sm:3”的命名空间namespace(见Namespace Versioning 关于版本号增加的可能性)。

注:客户端不能negotiate(谈判,商议;转让;越过) stream management,除非客户端已经身份验证并且绑定了一个资源;见下面的特定的限制条件。

例1:服务器发送新的流的header和流的features。

S: <stream:stream
       from='example.com'
       xmlns='jabber:client'
       xmlns:stream='http://etherx.jabber.org/streams'
       version='1.0'>

S: <stream:features>
     <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
     <sm xmlns='urn:xmpp:sm:3'/>
   </stream:features>

3. 启动Stream Management

要启动使用Stream Management,客户端发送一个<enable/> 命令给服务端。

例2:客户端启动Stream Management

C: <enable xmlns='urn:xmpp:sm:3’/>

如果客户端想被允许恢复流,必须包括一个boolean类型的“resume”属性,默认为false。恢复先前的一个会话(section),请参阅本文档的恢复部分。

<enable/>元素可以包含一个“max”属性,用来指定客户端最优的最大恢复时间,以秒为单位。

一旦受到启动请求,服务端必须回复一个<enabled/>元素,或者一个<failed/>,注明 ‘urn:xmpp:sm:3‘ 的命名空间namespace。<failed/>元素表示在建立stream management 会话(session)中存在一个问题。<enabled/>元素表示成功的建立了stream management 会话。

例3:服务端启动stream management

S: <enabled xmlns='urn:xmpp:sm:3’/>

然后可以使用stream management的特性定义下面的内容。

如果服务端允许会话恢复,服务端必须包括一个resume属性,值为”ture“或者”1“。

例4:服务端启动允许会话恢复的stream management

S: <enabled xmlns='urn:xmpp:sm:3' id='some-long-sm-id' resume='true’/>

<enabled/>元素可以包含一个”max“属性,用来指定服务端特定的最大恢复时间。

<enabled/>属性可以包含一个”location“属性,用来指定服务端的IP地址或者域名(端口可选)重新连接,见RFC6120的4.9.3.19部分(即,"domainpart:port", IPv6地址在方括号里[…],见RFC5952)。如果重连那个location失败了,标准的XMPP重连算法在RFC6120中有详细说明。

客户端不能尝试negotiate stream management,除非通过了身份验证;也就是说客户端不能发送一个<enabled/>元素直到完成了身份验证。(例如,SASL,Non-SASL Authentication (XEP-0078)或者 Server Dialback (XEP-0220)已经成功完成)。

例5:如果客户端试图在未绑定资源前启动stream management,服务端返回错误

S: <failed xmlns='urn:xmpp:sm:3'>
     <unexpected-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>

   </failed>

未完待续。。。

XEP-0198 流管理(Stream Management)中文翻译

时间: 2024-10-04 23:06:07

XEP-0198 流管理(Stream Management)中文翻译的相关文章

XMPP协议扩展:XEP-0198 流管理(Stream Management)中文翻译(个人整理,难免有翻译错的地方,请多多指正)

QQ讨论群:172158202 转载原文地址:http://blog.csdn.net/yuedong56/article/details/38120101 xep-0198英文文档链接地址:点击打开链接 RFC 6120中文链接地址:点击打开链接 相关參考1:点击打开链接 1.介绍 XMPP Core 用XMPP定义了流的XML技术(也就是流的建立和终止,包含认证和加密).可是核心的XMPP协议并没有为管理一个灵活的XML流提供工具. Stream Management背后的基本概念是.初始化

Spring Framework Reference Documentation 3.2.8.RELEASE 第23章中文翻译

23. JMS (Java Message Service) [中文翻译 by [email protected]] 23.1 介绍 Spring提供了一个JSM集成框架,简化了JMS API的使用.这点很像Spring对JDBC的集成. JMS大致提供生产消息和消费消息两类功能.JmsTemplate类用来生产消息和同步接收消息[译注:接收消息也就是消费消息].为了异步接收消息(异步接收消息类似于JavaEE的消息驱动Bean(Message-Driven Bean,MDB),Spring提供

Python 标准库 BaseHTTPServer 中文翻译

Python 标准库 BaseHTTPServer 中文翻译. 注意: BaseHTTPServer模块在Python3中已被合并到http.server,当转换你的资源为 Python3 时 2to3 工具将自己主动适配导入. 源代码:Lib/BaseHTTPServer.py 此模块定义了两个类用于实现HTTP服务器(Web servers).通常,此模块不被直接使用.可是它用来作为基类创建功能性的Web servers. 查看 SimpleHTTPServer 和 CGIHTTPServe

[译] QUIC Wire Layout Specification - Frame Types and Formats | QUIC协议标准中文翻译(4) 帧类型和格式

欢迎访问我的个人网站获取更好的阅读排版体验: [译] QUIC Wire Layout Specification - Frame Types and Formats | QUIC协议标准中文翻译(4) 帧类型和格式 | yoko blog (https://pengrl.com/p/47156/) 目录 Frame Types | 帧类型 STREAM Frame | 流类型帧 ACK Frame | ACK帧 STOP_WAITING Frame | 停止等待帧 WINDOW_UPDATE

Vlang官网文档(中文翻译)-vlang中文文档--v0.1.0_20180625

PS:主要为自己学习,,,,看的时候顺便翻译的,,,渣翻(非全人工)勿喷. 介绍 V是一种用于构建可维护软件的静态类型编译编程语言. 它与Go相似,也受到Oberon.Rust.Swift的影响. V是一种非常简单的语言,阅读这份文档大概只需要半小时的时间,读完之后,您将学习到V的全部内容. 尽管很简单,但是它为开发人员提供了很多功能,你能用其它编程语言做的任何事情,都可以用V做到. Hello World fn main() { println('hello world') } 函数用 fn

苹果App Store审核指南中文翻译(2014.9.1更新)

转:http://www.cocoachina.com/appstore/20140901/9500.html CocoaChina对<苹果应用商店审核指南>中文翻译最近一次更新时间为2014-02-27,文中红色部分是相对于2014-02-27版本的新增内容,蓝色表示苹果相关官方文档的链接 App Store Review Guidelines(英文版) 前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序.从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业,我们

《Introduction to Tornado》中文翻译计划——第五章:异步Web服务

http://www.pythoner.com/294.html 本文为<Introduction to Tornado>中文翻译,将在https://github.com/alioth310/itt2zh上面持续更新,本文内容可能不是最新状态,请在GitHub上获得最新版本. 本文也可在http://demo.pythoner.com/itt2zh上进行格式化的预览. 第五章:异步Web服务 到目前为止,我们已经看到了许多使Tornado成为一个Web应用强有力框架的功能.它的简单性.易用性

[转]苹果App Store审核指南中文翻译

原文地址:http://www.cocoachina.com/newbie/basic/2014/0227/7892.html 前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序.从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业,我们希望帮助您加入这个成功的组织.我们发布了<App Store审核指南>(App Store Review Guidelines),希望通过它帮您避开开发应用程序过程中的一些问题,并帮你在提交应用时加快审核流程. 我们将应用程序(A

Android Studio 2.0 正式版发布啦 (首次中文翻译)

Android Studio 2.0 发布了,增加了一些新特性: 1. 更加完善的 Instant Run 2. 更快的 Android Emulator 3.GPU Debugger Preview 4. 包含了 IntelliJ 15 的更新 Android Studio 2.0 原文   (翻译在往下翻) Posted by Jamal Eason, Product Manager, Android Android Studio 2.0 is the fastest way to buil