你的位置:首页 > 软件开发 > 操作系统 > 基于XMPP的即时通信系统的建立 — XMPP IQ详解

基于XMPP的即时通信系统的建立 — XMPP IQ详解

发布时间:2017-06-16 12:00:12
XMPP详解XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议。在此基础上,XMPP协议已经被用来构建大规模即时通信系统、游戏平台、协作空间及语音和视频会议系统。XM ...

基于XMPP的即时通信系统的建立 — XMPP IQ详解

XMPP详解

XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议。在此基础上,XMPP协议已经被用来构建大规模即时通信系统、游戏平台、协作空间及语音和视频会议系统。

XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块。XMPP中有众多系统:发布-订阅服务、多人聊天、表单检索与处理、服务发现、实时数据传输、隐私处理及远程过程调用等。

大多数社交媒体(Facebook及Twitter)也采用了XMPP协议。

什么是XMPP

与其他协议一样,XMPP定义了在两个或者更多通信实体间传递数据所采用的格式。对于XMPP,实体通常是指客户端服务器,但是其也允许客户端与客户端或服务器端与服务器端的通信。

在XMPP上交换的是

用户可以向XMPP Standards Foundation注册协议扩展。

在XMPP中,

XMPP节构成了该协议的核心部分,而XMPP应用程序则关注如何发送和响应各种类型的节。节可能包含网络上其他实体的信息、类似于电子邮件的个人消息或为计算机处理而设计的结构化数据。

<message to=’elizabeth@longbourn.lit’ from=’darcy@pemberley.lit/dance’ type=’chat’>     <body>what think you of books</body></message>

通用属性

from/to/type/id

from的属性并非由客户端提供,而是服务端进行的标记。

presence节

presence提供网络实体的可访问性。用户发出presence节,表明自己上线,这样可以会有更大的概率与别人通信(人们更愿意与在线的人交流),但是我们也不用担心任何人都可以看到自己的在线状态,除非我们订阅了该用户的状态,订阅之后,用户的状态信息会自动发送到订阅者处。

实际上,XMPP的presence节是一个简单的专用的发布-订阅方法。

在IM中,presence体现在花名册(roster)中,花名册保存有JID列表以及用户与这些JID的订阅关系,一旦上线,用户发送presence节,剩下的就由服务器处理了(通知自己在线,以及获取联系人的状态信息)

message节

用于从一个实体向另外一个实体发送消息,并可以传输任何类型的结构化信息,不保证传输可靠性

message是一个非常基础的推模型,message通常用于IM,groupchat,警告和通知等。

message的type有如下几种:

  • normal

    类似于email,发出后不等待回应

  • chat

    用于两个实体间的实时通信

  • groupchat

    多用户聊天室中使用

  • headline

    用于发送警告或通知

  • error

发送错误信息

<message from=madhatter@wonderland.lit/foo to=alice@wonderland.lit type="chat">  <body>Who are you?</body>  <subject>Query</subject></message>
  • 用户新增一个联系人
<iq from=alice@wonderland.lit/pda id="ru761vd7" to=alice@wonderland.lit type="set">  <query  
         
        
        

原标题:基于XMPP的即时通信系统的建立 — XMPP IQ详解

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录