APP IM 之 XMPP和Jabber及选择方案
1. 概述
IM ,InstantMessaging,即时通信。
现在,市面上有一批提供即时通信功能的公司。如:全时、云之讯(IM无语音和视频)、容联云通讯(支持点对点音视频,按照消息的存储空间收费)、融云(不支持视频)、环信(支持视频,点对点) 等等,从网上一搜,能搜出一大堆来。也许你觉得,怎么开发个IM系统这么简单吗,为什么这么多公司都做得这么好?其实不然,这些产品,其实都是基于很久之前的一个开源的技术,Jabber。
Jabber是JeremieMiller在1998年开始,2000年5月发布的一个即时通信服务器技术。刚开始应该是只能在Linux上,现在也能在Windows上运行。
Jabber的服务器是分布式的,用户通过服务器进行交流。并且,不同的服务器的用户之间也可以交流。像Google的Gtalk、MSN、ICQ等,都可以与Jabber服务器的用户进行通信。
XMPP是Jabber的通讯协议,原来不支持音视频,限制的升级版本也进行了支持。
上面说了这么多,像我们用到的环信的IM功能,还是很稳定的。并且也有很多用户在用,这是经过验证的,不用太担心这方面的问题。
2. 比较
2.1. 环信
环信,用的人挺多,集成及支持,我感觉挺方便:


环信现在日活跃量在30万以下,是不收费的。超过这个数量,每10万日活跃用户的收费标准时5000元/月。但是环信有个“离线消息”的问题,只支持500条,并且是所有人500条,包括群组,如果这样,人数不要太多,肯定会出现丢失离线消息的情况。
环信的音视频是没有收费的环节的。

2.2. 容联
容联 云通讯 ,用的客户也很多,并且品牌公司挺多的:


容联云通讯的IM的基本功能是完全不收费的,即时消息和文件存储超过默认空间,会覆盖掉原来的信息。拨打移动等运营商的电话号码会收费。语音和视频通话超过1万分钟会收费。
专有云是收费的,私有云相对专业云更贵一些,根据用户量会有价格的区别。

2.3. 其它
其它的要么不支持音视频,要么没那么多公司在用。暂时没发现太好的,所以还是不考虑使用了。
3. 选择方案
相比较而言,
环信的优点:1. 音视频是免费的,可以随时集成,2. 集成起来比较方便,而且有过使用经历。
环信的缺点:1. 离线消息总共是500条,其它再推送是收费的,不然肯定会收不到离线消息。
容联的优点:1. 没有用户数的限制(这一条可以忽略了,因为环信日活动30万也是很大的基数)。2. 推送离线消息
容联的缺点:1. 音视频超过1万分钟会收费 2. 相比环信,集成开发不是很方便
我后来又确认了下,环信的离线消息是一个人有500条,这500条来自不同的人或者群组,保存7天,我觉得这样就够用了。环信的商务跟我说叉了。
那么就选环信吧。
APP IM 之 XMPP和Jabber及选择方案的更多相关文章
- 跨平台app开发(引擎)工具的选择【转】
跨平台app开发(引擎)工具的选择 1.html5执行速度慢,用户体验不好 2.原生应用开发,即ios和安卓分别开发,需要两种技术人员,后期代码维护困难,很难达到统一. 3.xamarin是一款c#的 ...
- [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)
Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统W ...
- 一款新型的智能家居WiFi选择方案——SimpleWiFi在无线智能家居中的应用
一款新型的智能家居WiFi选择方案——SimpleWiFi在无线智能家居中的应用 先上图: 随着科学技术的不断发展,局域网也正逐渐向无线化,多网合一的方向发展,在这个多网合一快速发展过程中,带 ...
- 跨平台app开发(引擎)工具的选择
1.html5执行速度慢,用户体验不好 2.原生应用开发,即ios和安卓分别开发,需要两种技术人员,后期代码维护困难,很难达到统一. 3.xamarin是一款c#的解决方案,收费.xamarin.fo ...
- 生成证书时Distribution下面App Store and Ad Hoc 选项不能选择的原因及解决办法
出现这个问题的原因是:发布用的证书创建是有数量限制的,仅支持3个,所以把原先不用的证书Revoke掉就可以了
- 移动端HTML5开发 选择方案
如今出现了大量的CSS前端框架,但真正优秀的框架只有少数几个. 本文将会比较其中五个最佳的框架.每个框架都有自己的优点和缺点,以及具体的应用领域,你可以根据自己的具体项目需求进行选择.此外,许多选项都 ...
- PAT 甲级 1068 Find More Coins (30 分) (dp,01背包问题记录最佳选择方案)***
1068 Find More Coins (30 分) Eva loves to collect coins from all over the universe, including some ...
- CodeForces 27D - Ring Road 2 构图2-sat..并输出选择方案
题意 n个数1~n按顺序围成一个圈...现在在某些两点间加边..边可以加在圈内或者圈外..问是否会发生冲突?如果不发生冲突..输每一条边是放圈内还是圈外. 题解 ...
- app后端设计(2)--xmpp的使用(2014.01.14更新)
在app中有时候是需要添加聊天服务,在这里谈谈曾经开发聊天服务的经验: (1)聊天服务端选的openfire,这是一个基于xmpp协议的聊天服务器(XMPP是一种基于XML的协议,它继承了在XML环境 ...
随机推荐
- spring,hibernate配置事务 beans.xml
beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- generic type
http://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.html
- Android传感器编程带实例(转)
源:http://www.cnblogs.com/xiaochao1234/p/3894751.html 看了程序人生 网站的 编程高手的编程感悟 深有感触,好像也是一个android 程序员写的,推 ...
- linux操作命令实验
实验内容:文件操作与用户操作实验 实验设备(环境):电脑.Vmware WorkStation 实验步骤: 一.创建新用户bob 目的:练习useradd命令 二.为新用户bob设置口令 目的:练习p ...
- Express静态服务器
做应用的时候,如果需要给人测试,需要搭建本地服务器: 下载apache tomcat,各种配置,复杂得很. 之前在网上找到python的实现,在文件夹内运行一行代码就可以了,但是可惜,本机访问都很慢. ...
- Python大神成长之路: 第一次学习记录
一.Python发展史 二.Python2 or 3 博主选择了Python3. 从官网下载Python www.python.org Windows安装python3.5.python2.7.安装 ...
- ubuntu安装mysql数据库
http://www.cnblogs.com/zhuyp1015/p/3561470.html http://www.2cto.com/database/201401/273423.html http ...
- 数据库建表的时候报 “1215 Cannot add foreign key constraint”
很大原因是因为: 引用表中的字段类型和被引用的主键的类型不统一. 比如说学生表中有一个班级ID字段引用班级表. 班级表的ID是int类型,学生表中的班级ID是Varchar类型. 肯定会提示上述121 ...
- javascript类的继承
1.构造函数方式写类,通过方法调用复制父类属性/字段到子类 实现继承 这里父类,子类都采用构造函数方式写,不用原型.子类调用父类函数来复制父类的属性. 1 2 3 4 5 6 7 8 9 10 11 ...
- (困难) CF 484E Sign on Fence,整体二分+线段树
Bizon the Champion has recently finished painting his wood fence. The fence consists of a sequence o ...