xmpp xml基本语义
基本语义
9.2.1 消息语义
<message/>节种类可被看作“推”机制,一个实体推信息给其它实体,与 EMAIL 系统中发生的通信类似。所有消息节应该拥有‘to’ 属性,指定有意的消息接收者; 根据接收到那样的一个节,服务器应该路由或传送它到有意的接收者(参考服务器处理用于 相关 XML 节的通用路由与传送规则 XML 节的规则(10 节))。
9.2.2 出席语义 <presence/>元素可被看作基本广播或“出版-订阅”机制,多实体收到他们
已订阅(在这种情况下,网络可利用信息)实体的信息。总的 来说,出版实体应该发送一 个不带‘to’属性的出席节,在这种情况下,与此实体相连的服务器应该广播或复用节给所 有订阅实体。然而,一个出版实体也可能发 送一个带有‘to’属性的出席节,此种情况下, 服务器应该路由或传送节到有意的接收者。参考处理 XML 节(10 节)的服务器规则,用于 通用路由与相关 XML 节的传送规则,并且用于即时消息与出席应用的出席-特定规则 [XMPP-IM]。
9.2.3 IQ 语义
信息/请求,或 IQ,是一个请求-响应机制,与[HTTP]在某些方面相似。IQ
语义让一个实体向其它实体请求或接收其它实体的响应成为可能。请求与响应 的数据内容
由 IQ 无素的直接子元素的命名空间声明定义,并且,交互由请求实体通过使用‘id’属性
来跟踪。因此,IQ 交互遵从结构化数据交换的一个通用模 式,此交换例如得到/结果或设
置/结果(虽然如果合适的话,对一个请求的响应可能会以错误返回):
Requesting
Entity
----------
| <iq type='get' id='1'> |
| ------------------------> |
||
| <iq type='result' id='1'> |
| <------------------------ |
||
| <iq type='set' id='2'> |
| ------------------------> |
||
| <iq type='error' id='2'> |
| <------------------------ |
||
为了加强这些语义,以下规则应用:
1) 对 IQ 节来说,‘id’属性是 REQUIRED。
2) 对 IQ 节来说。‘type’属性是需要的。值必须是以下之一:
*get——节是一个用于信息或需求的请求。
*set——节 供所需数据,设置新值,或替换现存值。
*result——节是成功得到或设置请求的响应。
*error——先前发送得到或设置的相关过程或传送的错误(参考节错误(9.3 节))。
3)收到类型为“get”或“set”的 IQ 请求的实体必须以类型为“result”或“error”的
IQ 响应来响应(响应必须保留请求的‘id’属性)。
4) 收到类型为“result”或“error”的节不准靠发送一个进一步的类型为“result”或
“error”的 IQ 响应节来响应;然而,如以上显示,请求实体可能发送另一个请求(如:一
个类型为“set”的 IQ,为了 供通过得到/结果对发现的所需的信息)。
5) 类型为“get”或“set”的 IQ 节必须包含一个并仅有一个子元素,指定特别的请求或
响应语义。
6) 一个类型为“result”的 IQ 节必须包含 0 或一个子元素。
7) 类型为“error”类型的 IQ 节应当包含在相关“get”或“set”子元素中,并且,必须
包含一个<error/>子元素;
xmpp xml基本语义的更多相关文章
- AmazonOrder xml web语义化
XML Processing Modules — Python 3.7.1 documentation https://docs.python.org/3.7/library/xml.html#xml ...
- 【原】iOS学习42即时通信之XMPP(1)
1. 即时通信 1> 概述 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能 ...
- XMPP协议介绍
一.xmpp协议工作原理 二.XMPP地址模式 三.xmpp消息格式 xmpp xml包括三个元素,message,presence,iq,也翻译做三种节. 在'jabber:client'和'jab ...
- iOS开发-即时通信XMPP
1. 即时通信 1> 概述 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能 ...
- XML学习笔记3——XSD简述
现在的语言,如果不有那么一点OO的影子,都不好意思称之为语言了.在XML的语义约束方面,DTD虽然简单,但是功能不够强大,完全是直白的描述,于是又有了替代DTD的XSD(XML Schema Defi ...
- XML学习笔记2——DTD
在上一篇笔记中,将文档类型分类时,曾经根据文档是否使用并遵守了DTD或Schema来区分为格式良好的XML和有效的XML,那么什么是DTD和Schema呢?DTD和Schema都是用来规范XML文档的 ...
- XMPP协议简介
XMPP(息处理现场协议)是基于可扩展标记语言(XML)的协议.它用于即时消息(IM)以及在线现场探測.XMPP协议採用的是client-server架构,全部从一个client发到还有一个clien ...
- Java使用Schema模式对XML验证
XML允许创作者定义自己的标签,因其灵活的特性让其难以编写和解析.因此必须使用某种模式来约束其结构.目前最流行的这种模式有两种:DTD和SCHEMA,而后者以其独特的优势即将取代DTD模式,目前只是过 ...
- 【XMPP】Smack源码之初步认识
Smack 概述 Smack是一个用于和XMPP服务器通信的类库,由此可以实现即时通讯和聊天. Smack主要优势 非常简单易用,并且有十分强大的 API.只需三行代码就可以向用户发关文本消息: XM ...
随机推荐
- 游戏BUFF设计
游戏中的BUFF/DEBUFF我们见过很多,我见到的玩得比较泛滥的就属WAR3.魔兽世界.九阴真经.仿DOTA类的如LOL. 总体上来说,BUFF/DEBUFF都属于“临时的技能效果”,因此它们可以沿 ...
- java 自定义标签 传值
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://ja ...
- canvas游戏小试:画一个按方向键移动的圆点
canvas游戏小试:画一个按方向键移动的圆点 自己对canvas,但又有一颗做游戏的心TT.然后记录一下对canvas的学习吧,用一个按方向键控制的小圆点来做练习.(编程时用了一些es6的语法) ...
- Android学习笔记(十七)——数据库操作(下)
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 这一次我们来试一试升级数据库,并进行数据库的CRUD操作,其中, C 代表添加(Create) ,R 代表查询 ...
- JavaScript获取onclick、onchange等事件值的代码
这里主要是用到了getAttributeNode()这个方法,它获取的是属性节点,忽略属性和事件的差别,具体示例如下,感兴趣的朋友可以参考下哈希望对大家有所帮助 今天小菜处理下拉菜单级联问题时,想获取 ...
- iOS中的时间和日期
怎么说?时间和日期不是了不起的属性.了不起的功能,但是,我们决不能够因此就“冷落”它. 一:怎么“搞到货”--如何获取时间.日期 //-=-==当前时间------默认显示“0时区”时间 NSDate ...
- homework160809207刘兆轩
# include <stdio.h> int main() { float a,b,c,m,n,l,k,j,i; printf("请输入三个数:\n"); scanf ...
- OOP复习笔记
/*OOP相关的代名词不做讲解*/ OOP的三大特征: 封装 - 继承 - 多态 -----------------------------------目录---------------------- ...
- hiho #1223 不等式
#1223 : 不等式 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定n个关于X的不等式,问最多有多少个成立. 每个不等式为如下的形式之一: X < C X ...
- backbone模型层浅析
Model层有两个类: Model, Collection 1.Model 不翻文档,我们用代码说话. 首先分析下类. var myM = Backbone.Model.extend({})//构造一 ...