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/>子元素;

时间: 2024-08-28 23:06:57

xmpp xml基本语义的相关文章

UI进阶 即时通讯之XMPP登录、注册

一.即时通讯 什么是即时通讯. 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能. 即时通讯的实现方式 即时通讯有多种实现方式,例如:XMPP.环信.融云等. 什么是XMPP XMPP(XML,Messages,Presence,Protocol)是基于可扩展标记语言(XML)的协议,可用于即时通信(IM).——可扩展消息处理现场协议 XMPP优点 开放XMPP协议是由JSF开源

Openfire XMPP Smack RTC IM 即时通讯 聊天

目录 目录简介Openfire 简介相关的几个名词SmackSparkJIDXMPPOpenfire 安装配置测试代码初始化登录服务器登录底层报文通讯简要解析登录底层报文通讯简要解析服务器判断客户端是否在线发送消息测试案例代码项目结构MainActivity常用功能封装的工具栏 简介 Demo地址:https://github.com/baiqiantao/OpenFireTest.git 官网 官方文档 OpenFire下载 Openfire 简介 Openfire Openfire是一个根据

iOS进阶学习-即时通讯(1)

一.即时通讯 1.简介 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能. 2.实现方式 即时通讯有多种实现方式,例如:XMPP.环信.融云等.下面我们对XMPP的使用进行介绍. 3.什么是XMPP XMPP(XML,Messages,Presence,Protocol)是基于可扩展标记语言(XML)的协议,可用于即时通信(IM).——可扩展消息处理现场协议. 4.XMPP优点

boost::serialization(1)基础

1 将字符串内容保存/加载到文本归档文件中 #include <fstream> #include <iostream> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> void save() { std::ofstream ofs("t1.txt"); boost::archive::text_oarchive o

Smack 文档(译)

近期项目中要用到openfire smack 为让自己更快熟悉和别人阅读方便,针对 Smack 4.1.1 api文档翻译 Smack 文档 内容: 概述 入门指南 连接管理 消息传递 Roster and Presence 处理传入的 Stanzas Provider 架构 Smack 调试 Smack 扩展 概述 Smack是一个沟通的Library,用来和XMPP服务器进行实时通信,包括即时消息和群组聊天. Smack的主要优势 简单而易用,且功能强大的API.发送消息给用户可以完成在只有

Python中利用xpath解析HTML

在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构), 利用其lxml.html的xpath对html进行分析,获取抓取信息: 首先,我们需要安装一个支持xpath的python库.目前在libxml2的网站上被推荐的python binding是lxml,也有beautifulsoup,不嫌麻烦的话还可以自己用正则表达式去构建,本文以lxml为例讲解. 假设有如下的HTML文档 1 <html> 2 &

iOS---XMPP环境搭建过程

什么是即时通信? 即时通信是目前Internet上最为流行的通讯方式, 各种各样的即时通讯软件也层出不穷, 服务提供商也提供了越来越枫木的通讯服务功能. 即时通讯有多重实现方式, XMPP就是其中一种. XMPP(XML, Message, Presence, Protocol)是基于可扩展语言的协议, 可用于即时通信--可扩展消息处理现场协议 XMPP的优点: 1. 开放 2.标准 3.分布式网络架构 4.XMPP协议具有良好的扩展性 5.XMPP具有很好的弹性 6.安全性 1.安装JDK,X

Media Types

Available FormatsXML HTML Plain text Registries included below application audio example image message model multipart text video application Available Formats CSV Name  Template  Reference  1d-interleaved-parityfec application/1d-interleaved-parityf

fastdfs 集群配置

fastdfs 简介FastDFS是一个国产开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务,如相册网站.视频网站等等.FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage).跟踪器主要做调度工作,在访问上起负载均衡的作用.官方论坛: http://www.csource.org下载地址: http://sourceforge.net/pro