文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>xmpp介绍与RFC3920学习(2)

xmpp介绍与RFC3920学习(2)

时间:2010-04-02  来源:zlm8715

xmpp介绍与RFC3920学习(2) 1 XML Streams 两个基本定义
a, XML streams(XML流) : 是在网络上两个实体交换XML元素的容器。以XML开始标签<stream>开始,以XML结束标签<stream>终止。在流的生命周期里,实体可以发送大量的XML元素。包括用于协商流的元素或XML stanzas 。
b, XML Stanza(XML节): 是一个在XML流上从一个实体发往另一个实体的不连续的语意单元。XML节是根节点<stream/>的直接子节点。仅有的XML节是<message/> <presence/> <iq/>
    考虑一个客户端和服务器会话的例子,为了连接服务器,客户端必须通过发送一个开始标签<stream>初始化XML流,可选的XML版本声明和字符编码支持。服务器端应当响应一个XML流到客户端。一旦客户端完成SASL协商,客户端可以在流上发送大量的XML节,要关闭流,只需发送关闭标签</stream>,客户端和服务器将终止下层的TCP连接。
    XML流可以当作是所有XML节的信封。可以示例如下:
   |--------------------|
   | <stream>           |
   |--------------------|
   | <presence>         |
   |   <show/>          |
   | </presence>        |
   |--------------------|
   | <message to='foo'> |
   |   <body/>          |
   | </message>         |
   |--------------------|
   | <iq to='bar'>      |
   |   <query/>         |
   | </iq>              |
   |--------------------|
   | ...                |
   |--------------------|
   | </stream>          |
   |--------------------|
2  Binding to TCP(绑定到TCP)
     在客户端与服务器的通讯中,服务器必须允许客户端共享一个连接,这个连接可以从客户端到服务器发送XML节,也可以从服务器到客户端发送XML节。在服务器之间通讯中,必须有两个TCP连接
3 Stream Attributes(流属性) initiating entity(开始实体):会话发起的实体,通常是client.
receiving entity(接受实体):会话的另一方,通常是Server.
    流节点有下列属性:
   a,to: 应当仅用于在(initiating entity)开始实体到(receiving entity)接受实体XML流的头部,必须是接受实体的主机名。在接受实体到开始实体的流头部,to属性不应当设置,如果包括to属性,开始实体应当默默忽略。
   b,from: 应当仅用于从"receiving entity"到"initiation entity"实体的XML流的头部。必须设置为接受实体的主机名。在开始实体到接受实体的流头部,from属性不应当设置,如果包括from属性,接受实体应当默默忽略。    c,id: 应当仅使用于"receiving entity"到"initiating entity"的XML流的头部,这个属性是接受实体创建的一个session关键字,必须在接受实体应用程序一方(通常是服务器)是唯一的。流ID是临界安全的,所以必须是不可重复和不可预料的。在开始实体到接受实体的流头部,id属性不应当设置,如果包括id属性,接受实体应当默默忽略。    d,xml:lang: 应当包含在开始实体的初始化流头部,来指定在流上的默认语言。如果指定了这个值,接受实体应当记住这个值,并作为初始化流和响应流的默认值。如果没有包括这个属性,接受实体应当为两个流使用配置的默认值,必须包含在响应流的头部。如果开始实体包括'xml:lang'属性,接受实体不能修改或删除它。    f, version: 最少为"1.0"
总结如下:
            |  initiating to receiving  |  receiving to initiating
   ---------+---------------------------+-----------------------
   to       |  hostname of receiver     |  silently ignored
   from     |  silently ignored         |  hostname of receiver
   id       |  silently ignored         |  session key
   xml:lang |  default language         |  default language
   version  |  signals XMPP 1.0 support |  signals XMPP 1.0 support
 
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载