iOS 即时通讯XMPP

来源:互联网 发布:美工招聘信息 编辑:程序博客网 时间:2024/06/04 18:04

现在很多社交软件都很火,FaceBook、易信、陌陌等,QQ、微信当然依然是中文社交最大霸主。除此之外伙星也很火。除了社交软件用到即时通讯,商城类的软件也会涉及到买家与卖家的商谈,还有美食类软件,一般都会有评论,有用户之间的交流等等,几乎有用户资源的软件都会有即时通讯的需求。因此,即时通讯也是很重要的,不管目前所在的公司是否重视,但作为一个开发者不得小视。今天给大家聊一下即时通讯相关的内容。大家可以相互交流学习一下。

一、定义

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

借助第三方开发一般 只有SDK文档能够读懂,开发方面都没有太大问题,除非官方网站很久没更新文档了,新的界面和文档对不上或者有很多的错误。这才是最坑的。所以这方面平时多看有坑的就需要借助论坛来解决了,大家的力量才是巨大的。

0 0
原创粉丝点击