什么是聊天室软件的最佳开放协议?

20

我正在比较IRC、XMPP和一个我拥有的第三方专有服务器。

每种服务器的优缺点是什么,如果您知道其他值得一提的服务器,请给出建议。


你说要开放,但是提到了一个你正在考虑的专有选项。那么非开放选项可接受吗?如果不知道你正在考虑的专有选项,我们如何向你提供利弊分析呢? - ceejayoz
我正在考虑这个问题,因为我有源代码。但我只想要公开的建议。 - Bassel Alkhateeb
3个回答

30

我知道这是一个非常古老的帖子,原作者可能不会看到回复(甚至可能已不再关心),但我个人会选择在 XMPP 上部署 IRC。其主要原因是 XMPP 服务器占用的内存随着越来越多的 XMPP 客户端连接而增加。在单个实例上,当超过大约200个用户连接并积极开始使用服务时(XMPP MUC,文件传输,客户端对客户端的加密等),我尚未见到牢固可靠性。

相比之下,对于 IRC,我个人见过单个实例上的数千个连接,并且内存利用率通常少60-70%。IRC 服务器无需解析从客户端传递的消息,文件传输通过DCC进行客户端对客户端的传输,而且设计比基于 XML 的 XMPP 简单得多。

如果运行多个服务器并允许客户端选择连接哪个服务器,则可能会遇到 netsplits。但是,不稳定的 IRC 服务器与不稳定的 XMPP 服务器有何不同呢?如果 IRC 服务器发生 netsplits,则仅使连接到它的客户机下线,而不会使所有客户机下线,因此影响较小(除非您正在执行 s2s)。

无论如何,IRC 协议本质上更简单,可以在相同的内存利用率下处理数量级更多的客户端连接,使用更少的带宽,不需要身份验证(尽管您可以添加此功能)等。

看来我并不是唯一一个持这种观点的人:http://web.archive.org/web/20131128110041/http://laltromondo.dynalias.net:80/~iki/informatica/soft/xmpp_vs_irc/

对于本帖的未来读者,请考虑使用 IRC。这可能会在以后节省一些麻烦。


5
Google Talk在超过200个用户时存在问题吗?我相信有数百甚至数千种企业即时消息解决方案可以可靠地使用XMPP与超过200个用户通信。 - Robin
4
谷歌聊天不在单个XMPP服务器上运行,也不能用于部署,这些软件是谷歌公司内部使用的。MSN和Facebook的XMPP软件也是如此。XMPP规范中包含二进制XML,并且可能比IRC更高效。但是可用于部署的服务器很重要,早在90年代就开始开发的IRC有免费的开源服务器,胜过了任何XMPP拥有的服务器。 - user1657170
刚刚看到你的回答 :) 已经过去将近4年了,谢谢伙计。 - Bassel Alkhateeb
我喜欢 IRC,但你认为 IRC 服务器标准行为不支持离线消息、推送通知等有何看法?Bouncer 可以解决这些问题,但要求所有用户设置自己的 Bouncer 是不现实的。我对 XMPP 不熟悉,那它和 IRC 相比如何? - KFL
当我维护的系统设计时,我希望这一点已经被考虑进去了。XMPP在我们不断增长的用户群中的表现如何?嗯,用第三条真理的话来说:只要有足够强大的实例,猪也能飞起来...目前...但我们有麻烦了。这不是我对可扩展性的看法。 - Bigger

17

我认真考虑了XMPP,而你支持了我的观点。 - Bassel Alkhateeb

3

您可能想考虑使用PSYC

它是XMPP和IRC最佳功能的融合,还有更多:

由于它可以提供大部分你期望从IRC得到的东西,你可以在开始建立IRC网络之前考虑使用psyced。PSYC解决了IRC的政治、身份验证和可扩展性问题,并提供了大量超出IRC服务器预期的额外功能,但仍然可以与您熟悉的所有IRC客户端一起使用。 在某种程度上,PSYC和psyced也支持您期望从Jabber甚至XMPP本身得到的内容,但是根据您的特殊要求,您可能会遇到问题。 psyced也是XMPP服务器和网关。 PSYC协议能够本地传递加密数据,尽管我们只会在2012年开始使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接