摘要XMPP初识

来源:互联网 发布:软件项目介绍 编辑:程序博客网 时间:2024/05/20 13:08

XMPP是什么?

XMPP,可扩展消息和出席(存在)协议(eXtensibleMessageing and Presence Protocol)


XMPP 的网络

1服务器

XMPP服务器是XMPP网络的交通系统,它的任务就是为XMPP节提供路由。

常见的XMPP服务器有Openfire、Ejabberd、Tigase、M-Link、Jabber-XCP等。


2客户端

大多数的XMPP实体是客户端,它们通过客户端-服务器协议连接到XMPP服务器。Spark


3 .XMPP寻址?

XMPP网络上每个实体都有统一的JID(jabber identifier)。JID有多种不同形式,

xiaoming@baidu.cn/smack   

node: 用户名

domain:服务器域名

resource:属于用户的位置或设备


4,XMPP的数据格式?

核心XMPP工具集由三种基本节组成,这三种节分别为<presence>、出席<message><iq>根元素<stream:stream>

iq节

<iq>节表示的是Info/Query,它为XMPP通信提供请求和响应机制。它与HTTP协议的基本工作原理非常相似,允许获取和设置查询,HTTPGETPOST动作类似
<iq>节有四种,通过type属性区分,其中两种请求getset两种响应resulterror。每一个IQ-get或IQ-set节均必须接收响应的IQ-result和IQ-error节。此外,每一对<iq>必须匹配id属性。

Get:   获取当前域值

Set:   设置或替换get查询的值

Result: 说明成功的响应了先前的查询

Error:  查询和响应中出现的错误


5.连接生命周期?

通过三种基本节,实际上可以完成XMPP中任何任务,但发送XMPP节通常需要建立一个经过身份验证的XMPP会话。

5.1 连接

在发送任何节之前,需要建立XMPP流。在XMPP流存在之前,必须建立通往XMPP服务器的连接Socket

6 流的建立

一旦建立通往XMPP服务器的连接,XMPP流就启动了。通过向服务器发送起始元素<stream:stream>,就可打开XMPP流。服务器通过发送响应流起始标记<stream:stream>进行相应。
一旦双向建立XMPP流,就可以来回发送各种元素。

7 身份验证TLS

XMPP允许进行TLS(Transport Layer Security,传输层安全)加密,而且大多数客户端默认使用该功能。一旦服务器通告TLS支持后,客户端就启动TLS连接并将当前套接字升级为一个加 密套接字而不断开连接。一旦TLS加密确立,就会创建一对新的XMPP流。

8 连接断开

当用户结束XMPP会话时,会终止会话并断开连接。一般终止会话方式是,首先发送无效出席信息,然后关闭<stream:stream/>元素。


9.XMPP通信流程

(1)节点连接到服务器;
(2)服务器利用本地目录系统中的证书对其认证;
(3)节点指定目标地址,让服务器告知目标状态;
(4)服务器查找、连接并进行相互认证;
(5)节点之间进行交互.

10.XMPP优势

与HTTP相比,XMPP具有如下的优势:
(1)能够“推送”数据,而不是“拉”。
(2)防火墙友好
(3)牢固的身份验证和安全机制
(4)为许多不同的问题提供大量即开即用的工具




0 0