初窥XMPP

1. 什么是XMPP

XMPP(eXtensible Messaging and Presence Protocol)是一种用来在两个地点之间传递小型结构化数据的协议。XMPP最常用的使用场景就是即时通信,而这也是XMPP特点的最好体现。在XMPP上交换的数据是XML格式的,这使通信具备良好的可扩展性。

2. XMPP寻址

XMPP网络上每个实体都具有一个或多个地址(JID,jabber indentifier)。JID由三个部分组成:节点,域和资源。例如:danis@fabric.local/iphone。

  • 节点: “danis”便是一个节点,用来识别域中的一个特定用户,多人聊天服务将每个聊天室显示为一个JID,而节点部分指向聊天室。
  • 域:fabric.local 是域,域是实体可解析的DNS名称,也就是说,可以通过域来寻址处于网络中的实体,所以域是必须的。
  • 资源:/iphone则是资源,通常用于标识一个特定的客户端,/iphone则表示用iphone登录

3. XMPP节点

在XMPP中,各项工作都是通过发送和接收数据流来完成的,而XMPP核心由三种基本的节点组成<presence>,<message>,<iq>。三种节点有各自的用途,适当的组合可以完成复杂的任务.

1
2
3
4
5
6
7
8
9
10
<stream:stream>
<iq type= 'get' >
<query xmlns= 'jabber:iq:roster' />
</iq>
<presence/>
<message to= 'sherry@coco.lit' from= 'danis@coco.lit' type= 'chat' >
<body>Go to have a breakfirst</body>
</message>
<presence type= 'unavailable' />
</stream>
  • <stream:stream>:创建了一个XMPP流
  • iq:进行查询
  • message:则是一条信息
  • presence:出席,告诉服务器他在线并可以访问,<presence:unavailable>告诉服务器他不可访问
  • </stream>:关闭<stream:stream>元素,结束会话

(1). presence

<presence>控制并报告实体的可访问。

1
2
3
4
5
6
7
<presence>
 
<show>away</show>
 
<status>playing basketball</status>
 
</presence>

<show>用来传达用户的可访问性

<status>为可读的自然语言

(2). message

<message>用来实体和实体发送消息,这些消息可以是任何类型的结构化信息

(3). iq

<iq>: Info/Query,XMPP提供的请求/响应机制,和HTTP协议的工作原理类似。可以主动向实体进行查询。<iq> 有四种type:’get’,’set’,’result’,’error’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值