博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XMPP协议介绍
阅读量:5896 次
发布时间:2019-06-19

本文共 1193 字,大约阅读时间需要 3 分钟。

 一、xmpp协议工作原理

 

 

二、XMPP地址模式

 

三、xmpp消息格式

xmpp xml包括三个元素,message,presence,iq,也翻译做三种

 

在'jabber:client'和'jabber:server'名字空间中定义了三种 XML 节: <message/>, <presence/>, 和 <iq/>. 另外, 这三种节有五种通用的属性.

通用属性:

(1)to:'to' 属性表示节的预期接收者的 JID. 

(2)from:'from' 属性表示发送者的 JID .

(3)id:可选的'id' 属性可以(MAY)用于为节的内部跟踪发送实体,从 IQ 节 语义来讲,就是通过发送和接收这些节来跟踪“请求-应答”型的交互行为。这个可选的(OPTIONAL)'id'属性值在一个域或一个流中是全局唯一的。

(4)type:'type' 属性指明message、presence或 IQ的意图或上下文的详细信息。三种节的通用'type'值是"error",其它值很不一样。

(5)xml:lang:指明缺省语言

 

1、presence

<presence/> 元素可以被看作一个基本的广播或“出版-订阅”机制,用于多个实体接收某个已订阅的实体的信息(在这里,是网络可用性信息).

2、message

<message/>节类型可以被看作是一个"push"机制用于一个实体推送信息给另一个实体,类似发生在 email 系统中的通信.

3、iq

信息/查询(Info/Query),或曰 IQ,是一个 请求-回应 机制,某些情况下类似[HTTP].

IQ 语义学使一个实体能够向另一个实体做出请求并做出应答.

请求和应答所包含的数据定义在 IQ 元素的一个直接的子元素的名字空间声明中, 并且由请求实体用'id'属性来跟踪这一交互行为.

因而,IQ 交互伴随着一个结构化的数据交换的通用模式例如 get/result 或 set/result。

 

四、XML流

两个基本概念,XML 流和 XML 节。

XML 流的定义:一个 XML 流是一个容器,包含了两个实体之间通过网络交换的 XML 元素。一个 XML 流是由一个 XML 打开标签 <stream> (包含适当的属性和名字空间声明)开始的,流的结尾则是一个 XML 关闭 L 标签 </stream> 。

在流的整个生命周期,初始化它的实体可以通过流发送大量的 XML 元素,用于流的握手(例如 TLS 握手 或 SASL 握手) 或 XML 节(在这里指符合缺省名字空间的元素,包括<message/>,<presence/>, 或 <iq/> 元素)。

XML 节仅限于<message/>, <presence/>, 和 <iq/> 元素。

流错误:流的根元素可以(MAY)包含一个 <error/> 子元素。

 

 

转载地址:http://mcxsx.baihongyu.com/

你可能感兴趣的文章
C#winform自定义滚动条
查看>>
色差,15,还是15 ,换了颜色 就显的小了,
查看>>
security,
查看>>
SSH框架中配置log4j的方法
查看>>
【HDOJ】4704 Sum
查看>>
VS2013 快捷键 与 RESHARPER 冲突
查看>>
linux笔记:关机重启命令shutdown,系统运行级别init,退出登录logout
查看>>
装饰者模式&数据库连接池原理
查看>>
python自动化运维之路~DAY1
查看>>
运维面临的主要安全威胁介绍
查看>>
Hadoop生态圈-Hive函数
查看>>
OpenStack的基础原理
查看>>
js常用正则表达式判断
查看>>
Bootstrap学习笔记(二)-----网格系统
查看>>
第一次跑eureka
查看>>
Ubuntu 的软件的管理工具
查看>>
markdown基本语法
查看>>
跳马问题
查看>>
让linq 的distinct更方便一点吧
查看>>
str类型
查看>>