百度空间 | 百度首页 
 
查看文章
 
常用开源Jabber(XMPP) IM服务器介绍
2006-10-04 14:11
本文来源 http://hi.baidu.com/jabber

1. Openfire (Wildfire) 3.x
授权: GPL or 商用
操作系统平台:所有(使用Java开发)
XMPP Jabber 协议实现情况:98%
Tim 评价:
安装和使用非常简单,安装后进入Web界面进行2~3分钟的配置所有的东西都设好了。使用Java语言开发,在目前Java开发人员到处普及的情况下进行维护和扩展的成本非常低。在我的测试中加上 Connection Manager 的情况下单台服务器可支持 30 万并发用户。缺点是目前还不支持cluster。如果企业内部部署IM使用 Wildfire + Spark 是最佳的组合。
见:http://hi.baidu.com/jabber/blog/category/Wildfire

2. ejabberd
授权: GPL
操作系统平台:Linux, Windows, MacOS X 等
XMPP Jabber 协议实现情况:91%
Tim 评价:
Ejabberd目前是可扩展性最好的一种Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个cluster运作。
顾虑就是它采用一种大家都没听过的语言Erlang开发,所以很多人可能会象我一样因为这个原因放弃了它。

3. Jabberd 2.x
授权: GPL
操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样)
XMPP Jabber 协议实现情况:76%
Tim 评价:
自从jabber.org改用ejabberd之后,Jabberd一直都在走下坡路。扩展性比不上ejabberd, 易用性比不上 Wildfire,唯一的优势是使用C开发,如果你坚持要用C开发,那么还是选择jabberd吧。

4. Jabberd 1.x
授权: GPL
操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样)
XMPP Jabber 协议实现情况:45%
Tim 评价:
在几年前 jabberd 就是 Jabber 的代名词,至今很多 Jabber 文档仍然介绍的是 Jabber 1.4,
在我以前写的《Jabber 服务器占有率比较》中仍然排名第一。但是它很多新的规范都不支持,相信大部分用户都将转向新的服务器。
见:http://hi.baidu.com/jabber/blog/item/7d25bb199f31a44542a9ad02.html

5. 后起之秀 DJabberd
授权: open source
操作系统平台:主要是 Linux, (Perl写的,其他平台应该也支持)
XMPP Jabber 协议实现情况:N/A
Tim 评价:
djabberd 使用 epoll 技术,理论上单台服务器可以支持更多用户。Djabberd目前主要应用在LiveJournal上,大部分XMPP协议都支持,稳定性也不用置疑。但是因为推出时间尚短,很多细节功能可能需要时间慢慢完善。
djabberd介绍见:http://hi.baidu.com/jabber/blog/category/Djabberd

参考资源:
http://www.jabber.org/software/servers.shtml

常用开源Jabber(XMPP) IM服务器介绍
Jabber IM 服务器占有率比较
Openfire (Wildfire)已经完成开发 JEP-0124 Jabber XMPP扩展协议
Openfire (Wildfire) Connection Manager 安装配置简介
Openfire (Wildfire) Connnection Manager 协议分析
Openfire (Wildfire) 的最新特性, 基于 Mina 的 Connection Manager


查看作者更多即时通讯文章:http://hi.baidu.com/jabber

类别:jabber服务器 | 添加到搜藏 | 浏览() | 评论 (27)
 
最近读者:
 
网友评论:
1
2006-10-10 08:54 | 回复
Wildfire 3.0单机能够支持30万并发用户,让我很惊讶原来我也打算在Wildfire 3.0 基础上做服务器但我发现Wildfire 3.0每个连接一个线程的方式很难达到大上万并发用户。不知你的测试是在什么环境下进行的,你的Connection Manager是什么样的东西对Wildfire 3.0起到这么大的作用。希望赐教一二!
 
2
2006-10-10 21:08 | 回复
connection manager 就是 jivesoftware 开发出来的和 wildfire 配合使用的模块,cm专门处理外部tcp连接, wildfire 专门处理业务逻辑。cm与wf之间使用通常使用5个共享连接。所以wf的处理能力只跟处理量有关,跟用户数并无直接关系。
 
3
2006-10-11 15:42 | 回复
这样的话wildfire3.0是不是已经间接的解决了并发连接数问题和分布式处理的问题。 分布若干connection manager,只要wildfire服务器足够大不要说30万用户300万恐怕也没问题。
 
4
2006-10-13 10:37 | 回复
我现在想把JABBER集成到应用中,要处理客户发来的消息,和要发给客户的消息等。想用C或者C#,如果利用wildfire不知道行不行?JAVA和C怎么编译连接在一起呢,有没有合适的API? 请给点建议
 
5
2006-10-13 15:51 | 回复
请问,如果我想写一个WEB的JABBER客户端的话, 主要是想实现在网页上给MSN或GT发信息,不知道用Wildfire可不可以,大概怎么实现呢~?
 
6
2006-10-13 23:21 | 回复
如果只是给msn发消息,用msn机器人就行了,不需要使用jabber
 
7
2006-10-16 08:50 | 回复
开发IM类服务器使用Java和C++那个更好一点,使用java可以在Wildfire改造一下就行了但缺点是执行Java占用资源多执行效率差,使用C++就得自己写了并且C++没有java好用
 
9
2006-12-22 01:16 | 回复
【请教】 我正在使用 Wildfire 3.1.1 + MySQL , 我有两个问题,不知道如何实现: 1、如何从外部编程 得知 用户的在线状况, 我熟悉的语言有 VC++ / PHP ,可惜 Java 不熟。 2、如何从外部编程 向本地系统内的 用户发送消息,比如 用户 system001@xxx.xom 发送一条消息给 abc@xxx.com 。 这两个问题 为什么不能通过 MySQL 来解决呢?问题2, 发送离线消息,可以直接 写入数据表 “jiveoffline”, 可惜用户在线的话,不能立即收到 。
 
10
2006-12-22 22:05 | 回复
如果想通过直接修改 MySQL 来影响 wildfire,大部分操作都是有问题的,因为 wildfire 大量使用了 cache, 只有通过xmpp发来的指令对数据库有修改操作,wildfire 才会去更新cache, 否则很多直接添加数据库的内容要下次启动才会生效的。 1. 在线用户没有保存在数据库的,你必须调用wildfire的方法才能实现。你可以通过 wildfire web admin console 添加一个自定义的 jsp 实现。 2. 最简单是用admin console添加一个jsp实现。用其他语言可以使用XMPP协议模拟一个用户登录来发送消息。
 
12
2007-02-28 16:22 | 回复
多谢 iso1600 的回答。 我对 java 不熟悉,使用 jsp 则增加了复杂程度。 “使用XMPP协议模拟一个用户登录来发送系统消息”, 就需要首先有一个 系统用户, 并且该系统用户在 所有其他用户的花名册上, 同时 这个系统用户 的花名册上也必须有 所有其他用户。 那么 随着 用户的增加,是不是变成 系统用的花名册 超过上限?
 
13
2007-02-28 16:24 | 回复
所以似乎 admin console 中增加 jsp 是最可行的办法, 那么, 不知道 是不是已经有现成的 jsp插件 可供下载呢?
 
14
2007-02-28 22:18 | 回复
12楼:不一定要是好友,陌生人也可以发消息的。 13楼:没有插件,admin console它已经有个群发的jsp,稍微改下就可以用了。
 
15
2007-04-09 11:22 | 回复
我用的经改造过的 wpjabberd 现在已经带了500000人的并发了,我想还是C的代码效率高些吧
 
16
2007-04-10 12:05 | 回复
wpjabber比较老了吧,只能靠自己维护了 :)
 
19
2007-10-18 14:54 | 回复
那里有C#开源的即时通讯工具,大家知道的加我QQ:305804380 一起讨论也可以。
 
20
2008-01-14 14:48 | 回复
Wildfire 3.0单机能够支持30万并发用户! JAVA达到这多并发 简直是不可能的 IOCP epol 都没有这个性能 更不用说JAVA 了JAVA 了 达到单机3000并发 我估计就不中了 啊 是并发 不是异步的 。 有谁达到了这个水平 给我说下。 让我 开开眼 ,外国人也真能吹啊
 
21
2008-01-15 15:37 | 回复
to xjb922: 30万不是吹的,我的项目真实用户都可以达到。是通过connection manager来协同实现,socket(client连接)等事务由cm来完成。cm可以部署在同一台,也可以多台机。
 
22
2008-05-04 11:03 | 回复
麻烦请问一下,agsXMPP可以用于asp.net吗?就是网页 我想实现的是,网页传数据到某一指定的客户端程序[winform],谢谢
 
23
2008-05-05 10:26 | 回复
@Fish agsXMPP可以用于网页,客户端,甚至服务器程序。
 
24
2008-05-06 10:00 | 回复
谢谢您的回复 如果我想在网页中和一个客户端聊天,客户端可以用线程和socket来获取数据,那网页怎么办呢?.请赐教
 
25
2008-05-07 15:11 | 回复
可以每个用户新建一个后台线程处理,通过session交换数据。
 
26
2008-05-07 20:51 | 回复
谢谢您的回复,我先研究研究,再有问题再请教您,谢谢
 
27
2008-07-28 16:48 | 回复
我最近也在研究啊,有兴趣的加我一起学习学习QQ:381129269 GTalk:pigIdear@gmail.com msn:seven_zxh@hotmail.com
 
28
2009-02-09 22:40 | 回复
请问下30w的用户并发量是配置了多少个cm
 
29
2009-02-10 11:28 | 回复
还有一台服务器上配置多个cm跟配置一个cm效果一样吗?
 
30
2009-05-07 12:01 | 回复
回复xjb922:
你这种人就是人云亦云型的。
自己测试一下不就行了,谁说java不能支持到这个的?
程序的性能80%取决于程序员的功力和设计思想,而不是语言,懂吗。
还3000并发,我们的系统用java开发的,也早就飙过这个值了,一看你就是无知,多和博主讨教讨教。
 
31
2009-10-21 13:19 | 回复
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu