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环境 ...
随机推荐
- Cacti安装详细步骤(转)
一.cacti概述 1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户. ...
- 几种在shell命令行中过滤adb logcat输出的方法
我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adblog ...
- JAVA的三大特征 封装继承多态- 简单总结
简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...
- 用CSS让文字居于div的底部
css对文字的布局上没有靠容器底部对齐的参数,目前使用的一个不错的方法也比较好.就是用position属性来解决,看下面的代码,用position的相对和绝对定位功能也轻松的实现了,文字靠近div低部 ...
- MJExtention
+ (NSDictionary *)mj_objectClassInArray { // key : 属性名 // value : 类名 return @{ @"dogs" : @ ...
- photoshop基础教程视频-贺叶铭-传智播客-笔记
界面构成 1.菜单栏 2.工具箱 3.工具属性栏 4.悬浮面板 5.画布 ctrl+n 新建对话框 (新建画布) 画布200*200大小,是指以毫米为单位,当不说单位,默认是毫米. 打开对话框:ctr ...
- ZOJ3944People Counting<暴力/枚举>
题意:输入一张照片,给出人物的特征,判断有多少个人. .O. /|\ (.) 思路:按照3*3的图统计,只要有一个点符合就加1 #include<cstdio> #include<i ...
- (转)在Java中如何遍历Map对象
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- IE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1个像素的偏差
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- struts2使用iterator标签显示嵌套Map - 云自无心水自闲 - BlogJava
"> <s:iterator value="dataMap.keySet()" id="class"> ...