打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
XMPP通讯过程简介
userphoto

2014.12.21

关注

版权所有,转载请注明出处:http://guangboo.org/2013/02/21/xmpp-communication

分布式框架

XMPP协议描述了全局唯一的通讯地址,就像email地址一样,并且协议还描述了XMPP服务器之间的通讯,使得XMPP通讯不局限于域内,而且支持跨域的通讯,也就是说jid为user1@example.net的用户也可以与jid为user1@example.org的用户进行通讯,具体通讯过程如下图:


XMPP客户端只能连接当前域的XMPP服务器,并完成验证,绑定资源等操作。客户端之间的通讯,如在同一域内则不必多说,当需要跨域通讯时,那么服务器端负责服务器直接的通讯。因此服务器端不仅协调客户端之间的消息交换,而且要负责服务器间的消息交换。

通讯过程

这里以使用TCP连接为例介绍XMPP通讯的过程:

  1. 建立TCP连接;
  2. 发送初始化XML流<stream>
  3. 流协商过程,客户端询问服务器端的特性支持情况,如强制性的特性出现不支持,将可能直接关闭XML流,并端口连接;
  4. 用户验证;
  5. 初始化出席信息,通知服务器自己的状态;
  6. 数据交换,如发送、接收即时消息,查询用户信息等;
  7. 发送结束XML流</stream>;
  8. 关闭TCP连接。

XML表示

初始化流响应流说明
<stream> 发送初始化流
 <stream>服务器端响应

<presence>

<show/>

</presence>

 发送出席状态

<message to='user1@example.net'>

<body/>

</message>

 发送消息给user1@example.net

<iq to='example.net' type='get'>

<query/>

</iq>

 向服务器做查询操作
 

<iq from='example.net' type='result'>

<query/>

</iq>

返回查询结果
[...] 发送其他消息
 [...]服务器反馈
</stream> 关闭流
 </stream>关闭流

以上大部分xml片段都是非常简短的,实际的XML将会有许多属性和子节点。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
XMPP协议学习笔记
RFC3920可扩展消息出席协议(XMPP):核心
XMPP协议简介
Openfire与XMPP协议
XMPP协议的原理介绍
XMPP协议介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服