这一节,我们从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,历史(略)