`
thoughtbear
  • 浏览: 3475 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

XMPP协议中的XMLStream和XMLStanza

    博客分类:
  • XMPP
阅读更多

       XMLStream可以理解为XMPP内容在不同实体(如client、server)之间传递的容器,XMLStream开始于<stream>标签,结束于</stream>标签,在生命周期中,可传递不限量的XMPP内容。

 

      XMLStanza是被传递的XMPP内容的基本形式,它可以这样定义:1.在</stream>的子层(深度=1);2.元素名称为message、presence或iq(被包含在<message/>、<presence/>或<iq>);3.名字空间为jabber:client 或 jabber:server,这3个条件都满足的话即为XMLStanza。

      message为消息, presence为在线状态(在线/离线/可以聊天……),iq表示Info/Query(一去一回)。

 

      之间关系显然,实际情况一般如此:

      1.建立XMLStream。

      2.通过传递stream完成前期信息交换及认证。

      3.传递XMLStanza。

         ……

         关闭XMLStream。

      交互过程如下示意图:

+--------------------+--------------------+
| INITIAL STREAM     |  RESPONSE STREAM   |
+--------------------+--------------------+
| <stream>           |                    |
|--------------------|--------------------|
|                    | <stream>           |
|--------------------|--------------------|
| <presence>         |                    |
|   <show/>          |                    |
| </presence>        |                    |
|--------------------|--------------------|
| <message to='foo'> |                    |
|   <body/>          |                    |
| </message>         |                    |
|--------------------|--------------------|
| <iq to='bar'       |                    |
|     type='get'>    |                    |
|   <query/>         |                    |
| </iq>              |                    |
|--------------------|--------------------|
|                    | <iq from='bar'     |
|                    |     type='result'> |
|                    |   <query/>         |
|                    | </iq>              |
|--------------------|--------------------|
| [ ... ]            |                    |
|--------------------|--------------------|
|                    | [ ... ]            |
|--------------------|--------------------|
| </stream>          |                    |
|--------------------|--------------------|
|                    | </stream>          |
+--------------------+--------------------+

 

 

 

分享到:
评论

相关推荐

    XMPP协议中文参考指南

    在 XMPP 协议中,XML 节的语法符合 'jabber:client' 和 'jabber:server' 名字空间的 XML 节的基本语义和通用属性已经在 RFC 3920 中定义了。消息语法符合 'jabber:client' 或 'jabber:server' 名字空间的消息节用于 ...

    XMPP协议中文帮助文档

    XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,被广泛应用于即时通讯、在线状态管理和数据交换等领域。这份"XMPP协议中文帮助文档"无疑为那些需要理解和应用XMPP技术的开发者...

    XMPP协议中文版

    XMPP协议的核心功能被定义在RFC3920和RFC3921中,分别涉及核心协议和即时消息与出席协议(XMPP-IM)。 通用架构章节阐述了XMPP协议所采用的客户-服务器模型,该模型允许任意两个网络终端通过TCP连接实现结构化信息...

    xmpp协议相关的jar和中文文档

    XMPP(Extensible Messaging and Presence Protocol)是一种开放的即时通讯协议,主要用于构建实时通信系统,如聊天应用、社交网络和协作工具。它基于XML(可扩展标记语言)设计,允许开发者构建灵活、可扩展的通信...

    XMPP协议(可扩展消息出席协议):核心.doc

    XMPP 1.0的核心功能定义了协议的基础,而即时消息和出席信息功能则在XMPP-IM协议中进行了扩展定义。 **1.2 术语** 文档中的关键字如"MUST"、"SHOULD"等遵循BCP14和RFC2119中定义的标准含义,用于规范协议的使用和...

    XMPP协议详解

    XMPP(可扩展消息和出席信息协议)是一种基于XML的实时通信协议,旨在提供即时消息、出席信息(在线状态)以及请求-响应服务。它的设计初衷是为了满足RFC 2779中对即时通信和出席信息的需求。XMPP最初由Jabber开源...

    XMPP协议 C#实例

    XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息和在线状态的传递。在本文中,我们将深入探讨如何使用C#语言实现XMPP协议,并通过一个名为"ConsoleXmpp"的示例...

    xmpp协议(中文翻译版)

    XMPP(Extensible Messaging and Presence Protocol,可扩展消息与存在协议)是一种基于XML的实时通信协议,用于构建即时通讯和在线状态服务。该协议最初由Jabber项目开发,后来被互联网工程任务组(IETF)标准化,...

    XMPP.rar_xmpp _通讯协议中文

    XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放通信协议,主要用于实时通信和存在信息的交换。这个“XMPP.rar_xmpp 通讯协议中文”压缩包包含了一个名为“XMPP.doc”的文档,很可能是关于...

    类似QQ的xmpp协议聊天

    总结,通过使用XMPP协议和Android开发技术,我们可以构建一个类似QQ的聊天应用,提供丰富的即时通讯功能。在实践中,我们需要关注协议的正确实现、用户体验的设计,以及数据安全和隐私保护等方面,以打造一个稳定、...

    XMPP协议中文版.doc

    《可扩展消息和出席信息协议(XMPP)中文版》文档详细阐述了XMPP协议的核心功能,这是一种基于XML流的实时通信协议,适用于构建即时消息和出席信息应用,以满足RFC 2779的需求。XMPP的设计目标是提供一个开放、可...

    XMPP协议--即时通讯工具实现原理

    XMPP (Extensible Messaging and Presence Protocol) 是一种开放标准的即时通讯协议,它基于XML,设计用于提供实时通信和消息传递。XMPP的核心组件包括客户端、服务器和服务器之间的连接,使得用户可以进行一对一、...

    XMPP协议之RFC6120

    RFC6120是描述XMPP核心协议规范的文档,它定义了XMPP的核心协议方法,如XML流的建立和拆除、通道加密、身份验证、错误处理以及消息、网络可用性(存在)和请求-响应交互的通信原语。此外,RFC6120还替代了之前版本的...

    xmpp协议和xmpp扩展协议

    xmpp协议和xmpp扩展协议,chm格式

    xmpp协议详解

    XMPP(可扩展消息和出席协议)是一种基于XML的实时通信协议,最初由Jabber开源社区开发,后来成为IETF即时消息和出席技术的标准。该协议主要用于构建即时消息和在线状态服务,同时也支持数据的交换和其他请求-响应...

    xmpp协议demo

    XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,主要用于即时消息和在线状态的传输。这个“xmpp协议demo”很显然是一个演示如何使用XMPP协议的项目,可能包含客户端和服务器端的...

    XMPP协议工具openfire_3_10_3

    XMPP(Extensible Messaging and Presence Protocol,可扩展消息与存在协议)是一种基于XML的开放标准通信协议,主要用于实时双向通信,如即时消息(IM)、语音及视频通话、文件传输等。该协议最初由Jabber项目开发...

    在android环境下 用XMPP协议数据传输程序

    XMPP是一个基于XML的开放标准,用于实时通信和消息传递,它支持多种功能,包括聊天、群聊、文件传输等。下面将详细阐述如何在Android平台上构建一个XMPP应用程序,并解释相关技术点。 首先,理解XMPP协议的关键概念...

    xmpp协议介绍,XMPP体系架构

    XMPP的核心概念是构建在TCP/IP协议之上的XML流,使得数据在客户端和服务器之间双向传输。 在XMPP体系架构中,有三个主要角色:客户端(Client)、服务器(Server)和网关(Gateway)。客户端通过TCP/IP连接到服务器...

Global site tag (gtag.js) - Google Analytics