业界有很多优秀的开源XMPP服务器,比如eJabberd、Openfire、Tigase、Jabberd2、Prosody,还有一些优秀的商业XMPP服务器,比如lsode、Jabber XCP等。在XMPP.ORG网站上可以看到完整的列表。
openfire使用搭建更加方便快捷,管理界面也更友好,可视化配置方便。
tigase功能更加强大丰富一些,tigase性能更好,支持集群横向扩展,可以支撑更大的用户量 (官网号称单机50w 集群百万)
选择: 如果你是想快速搭建,控制成本,用户量不多的情况下,完全可以选择openfire
如果你将面对更多用户(十万甚至百万级),并愿意话费时间人力成本进行部署调优,甚至二次开发的话,选择tigase准没错
http://www.shiku.co/faq.html
软件功能
1、用户系统:用户注册、登录、添加好友、删除好友、好友列表、支持上传头像、可以修改个人信息、名称、性别、地区、签名、黑名单功能、拉入黑名单将无法收到对方的信息、查看好友当前地理位置。
2、聊天系统:发送文字、图片、语音、表情。语音聊天可以显示时长、未读状态,自动轮播未读语音;
3、群聊系统:建立房间、加入房间、删除房间、房间列表、群聊、屏蔽群消息功能、邀请、踢出好友(只有房主才有这个功能)。并有操作日志实时显示在房间中
4、附近人功能:根据筛选条件查看附近的人,查看用户时能显示位置
5、朋友圈:支持发送文本、图片、语音、视频或以上混合消息,支持好友进行赞、评论、转发、送礼物等操作,并且可以根据消息显示粉丝贡献值。
6、实现了发消息后,如接收方不在线,除了离线消息外,会自动推送通知,留了推送接口
7、提供如何和贵企业现有服务器现有用户系统整合的方案,使IM只是成为其中的一个模块,方案简单易用。
8、单台服务器能适应超20w以上大规模并发,并支持服务器集群,理论上可以支持上亿用户。
服务端比较
功能 | Openfire | Tigase | 视酷即时通讯系统(基于Tigase) |
网络框架 | Java的MINA | Java的NIO | |
单聊、群聊 | 支持 | 支持 | 支持并可以发送图片、语音、视频、文件等 |
离线推送 | 不支持 | 不支持 | 支持 |
消息回执 | 不支持 | 不支持 | 支持 |
聊天记录 | 不支持 | 不支持 | 支持 |
NoSQL存储 | 不支持 | 不支持 | 支持并已实现MongoDB存储 |
朋友圈 | 不支持 | 不支持 | 支持 |
服务器集群 | 支持但不稳定 | 支持 | 支持并可以通过增加机器横向拓展 |
用户在线数 | 150000 | 250000 | 300000 |
1.为什么弃用OpenFire?对Tigase做了哪些修改?
OpenFire推出较早,视酷的第一版本就是基于OpenFire的,但由于网络框架比较落后,不稳定,服务经常要重启,且并发性能差,没 有一款巨量用户的APP是用它的,研究良久后面选定了Tigase服务器(有巨量用户案例),Tigase推出晚,克服了Openfire好多缺点,性能 优越,我们所有的修改都做成了插件,这样当Tigase升级时,插件能照常使用。
2.系统采用什么框架?
系统采用的成熟的XMPP协议+CentOS6.5+Jdk1.8+mysql5.6+ mongodb3.0.1+Tigase7.0.2+Redis3.03+Nginx1.7.9, 服务端采用JAVA语言,如微信、陌陌均采用了XMPP协议
3.为何要用消息回执?
消息回执是XMPP的扩展协议,是保证消息100%送达的关键,Tigase本身不支持回执,我们做了扩展,如果APP商用,必须用它,否则丢包率非常严重,尤其在信号不畅时
4.Tigase的并发性能如何?
经过我们优化之后的性能能达到单台服务器并发20万用户以上,使用集群方案后理论上支持上亿用户同时在线,同时客户端源代码采用标准的XMPP协议,很容易支持其他服务器如ejabberd
5.出售的是源代码吗?
是的,不止如此,重要的是我们提供一整套的解决方案和技术支持。同时关键代码位置有注释,设计文档齐全
6.技术支持力度如何?
一般会把双方的技术人员拉至一个QQ群内,随时交流指导;技术支持至少三个月,长则一年
10.未来升级会加什么功能?
我公司的主业是一款大型移动互联网APP,正在加入音频群聊、视频直播功能,将来升级可给老客户最最优惠的价格