协议和架构
基本结构
- 1.4 xmpp寻址
- JID: id@192.168.1.136.com
1.5 xmpp节
<presence>
:出席- 订阅出席:subscribe unsubscribe subscribed unsubscribed
- 定向出席
<message>
type
- chat
- error
- groupchat
- normal
- headline
<thread>
<iq>
:info/query P15<error>
: RFC3920 - 3.9.2节- 取值:cancel continue modify auth wait
连接的生命周期
连接
SRV记录:DNS资源记录之一
SRV是DNS记录中一种,用来指定服务地址。与常见的A记录、cname不同的是,SRV中除了记录服务器的地址,还记录了服务的端口,并且可以设置每个服务地址的优先级和权重。
插曲 -- DNS中的七大资源记录介绍!
- A记录:IP <-->域名对应关系
- NS:某区域有哪些服务器负责解析域名
- SOA:解析域名的主服务器
- MX记录:邮件服务器
- PTR:A的逆向记录
流的建立 P17
<stream:stream>
节
身份验证
- 支持TLS传输,配合服务端设计验证身份.
- 断开
设计应用
xmpp协议和http的差异性
优势:
- http是请求响应型,xmpp是推送.
- 取悦防火墙:xmpp服务器可以直接推送数据给客户端,http只能是请求-响应.
- xmpp支持tls和SASL传输,类似于https.
劣势:
- 有状态
- 生态小
- 开销大
BOSH -- Bidirectional-streams Over Synchronous HTTP
- bosh是长轮询
- 连接管理
- Strophe js
TODO
XMPP通讯安全--SASL协议学习