摘要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协议的基本工作原理非常相似,允许获取和设置查询,与HTTP的GET和POST动作类似。
<iq>节有四种,通过type属性区分,其中两种请求get和set,两种响应result和error。每一个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)为许多不同的问题提供大量即开即用的工具
- 摘要XMPP初识
- 初识XMPP
- 初识XMPP
- 初识xmpp
- XMPP协议摘要
- XMPP常用方法摘要.
- 初识xmpp笔记
- 摘要MVP概念初识
- 初识Activity(章节摘要)
- 摘要xml解析思想初识
- 摘要异步任务AsyncTask初识
- iPhone架构xmpp聊天工具 -xmpp协议初识《一》
- iPhone架构xmpp聊天工具 -xmpp协议初识《一》
- iPhone架构xmpp聊天工具 -xmpp协议初识《一》
- iOS-IM From XMPP.1 初识XMPP
- 摘要HTTP 请求响应协议初识
- XMPP聊天程序iPhone版开发(一):初识XMPPFramework
- 摘要android触摸事件的分发机制初识
- 如何使scrapy爬取信息不打印在命令窗口中
- SQL SERVER日常运维巡检系列
- Android获取当前系统时间
- binbinyang--5.MPAndroidChart开源图表库---柱状图
- Atlassian 信息化案例分享1
- 摘要XMPP初识
- protobuf repeated的使用
- input file里的JQ change() 事件的只生效一次
- Thrift源码系列----4.数据的解析与发送、接收
- 温故而知新-python语法复习
- Memcache
- npm、grunt、bower实现前端项目自动化
- viewpager 不带动画跳到指定页面
- redis和memcached的区别