XEP-0198:Stream Management研究

来源:互联网 发布:c语言 true false 编辑:程序博客网 时间:2024/05/21 00:19

最近Jabber Server team的开发人员一直在讨论XEP 0198的东西,这个东西个人感觉还是比较有用的,特别是关于resume的部分,因为对于mobile client来说,网络掉线的概率还是比较大,目前对于掉线重连的case,很多人都觉得重连这一块太花时间了。如果server支持stream resume了,我想重连这一块会快很多。

下面是我学习0198这个XEP的一些成果:

1. 如果Server支持stream management, 在stream:features会包含下面的东西

[html] view plaincopy
  1. <stream:features>  
  2.      <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>  
  3.        <required/>  
  4.      </bind>  
  5.      <sm xmlns='urn:xmpp:sm:3'>  
  6.        <optional/>  
  7.      </sm>  
  8.    </stream:features>  

2. Enable stream mangement比较简单,如下:

[html] view plaincopy
  1. <enable xmlns='urn:xmpp:sm:3'/>  


3. Acks, 这部分的内容相对来说比较复杂, client/server端应该包含两个东西, 一个是发送队列(h值和发送的内容的对应关系), 接收到的对方处理的h值; 接收到的最新的h值。对于client来说,比较关心的就是收到的h值,当connection断掉重连的时候,client可以给Server发送这个h值,然后Server可以把后续client没有处理的stanzas重新发送一遍。

 

4. resume过程