首页 > 代码库 > Asmack开发系列之XMPP概述

Asmack开发系列之XMPP概述

这一节,我们从Asmack基于的协议核心出发,XMPP协议,来学习。弄懂XMPP对学习Asmack源码有着重要的原因,做到知其然知其所以然。

本文主要是学习《XMPP The Definitive Guide Building Real-Time Applications with Jabber Technologies》文总结而来。


1,您能够拿XMPP来做什么?

XMPP(Extensible Messaging and Presence Protocol),主要是传输XML数据。

典型的XMPP实现一般包含如下服务(Services):

1)通道加密(Channel Encryption)。虽然加密通信不是必须的,但对于建立安全软件却是非常必须的。

2)鉴权(Authentication)。用户需要通过xmpp来通信,首先要进行登入鉴权。

3)上线/出席(Presence)。主要是负责“好友在线么?不在线?还有就是,我上线了,我下线了”等。

4)花名册/联系人列表(Contact list)。

5)一对一通信(One-to-One Messaging)。

6)群对话(Multi-party Messaging)。

7)通知(Notifications)。广播一样,有点像QQ的右下角弹框。当然,你可以定制主题topic

8)服务发现(Service Discovery)。服务发现,你可以知道别的节点支持什么样的服务。

9)能力广告(Capabilities advertisement)。作为服务发现的一个补充。

10)结构化数据表单(structured data forms)。可以和其他节点交换类似与html表单的数据。

11)流程管理(Workflow Managerment)

12)Peer-to-Peer富媒体会话。这个用来传输多媒体数据,用作语音对话,视频对话,文件传输等。

以上就是一个典型的实现XMPP协议库需要支持的服务。


2,应用

以下是能够使用XMPP来做的应用:

1)即时通信(Instant Messaging)。

2)群组对话(GroupChat)。

3)游戏(Gaming)。

4)系统控制(System Control)。

5)定位。

6)云计算中间件。

7)内容发布系统。

8)IP电话(VoIP)。

9)标识系统。


3,历史(略)






Asmack开发系列之XMPP概述