一、定义
XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。
通俗的来说,其实XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接收的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。
二、基本网络结构
XMPP中定义了三个角色,客户端,服务器,网关,通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,基本的网络形式是单客户端通过TCP/IP,UDP连接到单服务器,然后在之上传输XML
三、功能
传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本
四、优缺点 OpenFire服务器
优点:XMPP协议是自由、开放、公开的,并且易于了解。而且在客户端、服务器、组件、源码库等方面,都已经各自有多种实现。XMPP除了可用在实时通信的应用程序,还能用在网络管理、内容供稿、协同工具、文件共享、游戏、远程系统监控等。
缺点:XMPP协议的方式被编码为一个单一的长的XML文件,因此无法提供修改二进制数据。
五、第三方
1.环信:http://www.easemob.com
目前创建群组支持的配置属性有:
1 群名称
2 群描述
3 群人数(不支持修改,目前上限为2000人)
4 群类型(即上面提到的四种群组类型)
群组分4种类型,目前SDK不支持自主选择是否进群。我们将针对每种类型讲解加入群组要进行的操作。
1 eGroupStyle_PrivateOnlyOwnerInvite 该类型的群组只允许群主(owner)添加人进群,其他人无法主动加入。
2 eGroupStyle_PrivateMemberCanInvite (推荐使用),该类型的群组允许所有群成员添加人进群,其他人无法主动加入。
3 eGroupStyle_PublicJoinNeedApproval (推荐使用),该类型的群组只允许群主(owner)添加人进群;其他人想进入群组的话,需要先发送申请,群主同意申请之后才能进群;其他人无法主动加入。
4 eGroupStyle_PublicOpenJoin (不推荐使用),该类型的群组允许任何人主动加入群组。
聊天室”模型:
1 进入聊天页面之前,进行加入聊天室操作;
2 成功进入聊天室之后,服务器会自动给推10条消息;
3 离开聊天页面之后,进行退出聊天室操作;
4 聊天室创建者owner可以进行退出聊天室操作;
5 支持最大成员5000;
6 环信的聊天室内仅有owner和游客;
7 不支持客户端建立聊天室;
8 不支持客户端邀请;
9 不支持REST邀请;
10 聊天室内成员离线后,服务器当监听到此成员不在线后不在会给此成员再发推送。
2.融云:http://www.rongcloud.cn