XMPP服务器:ejabberd vs openfire vs韵律

时间:2015-11-08 17:30:28

标签: server xmpp

我正在试图弄清楚XMPP是如何工作的(一般是协议中的初学者),我想建立一个服务器。

到目前为止,我看到了3个主要挑战者:

  • ejabberd
  • 的Openfire
  • 韵律

我在某个网站和the wikipedia上查了一下,但我看不出有关所有这些内容的利弊。

我在哪里可以找到一些可以理解的信息?

PS:如果上下文在某种程度上很重要,我想在我的个人树莓派上设置我的服务器(所以处理能力不是那么大),我的最终目标是使用XMPP为使用谷歌云消息传递的小型Android应用程序

3 个答案:

答案 0 :(得分:11)

My Top XMPP服务器软件

顶部:统计使用

  • 1)Ejabberd(61.6279%)
  • 2)韵律(17.0543%)
  • 3)OpenFire(7.36434%)

热门:多核使用

  • 1)Ejabberd和Openfire

  • 2)---!

顶部:内存使用情况

  • 1)韵律
  • 2)Ejabberd
  • 3)Openfire

热门:网络管理员

  • 1)Openfire

  • 2)Ejabberd

  • 3)否(默认)

顶部:编程语言

  • 1)Openfire(Java)和Prosody(Lua)

  • 2)Ejabberd(Erlang)

Personnal / Raspberry pi / ejabberd vs openfire vs韵律=(我的选择)韵律

统计使用(俄语维基):

  

http://jabberworld.info/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D1%85_%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2_Jabber

评论(俄语维基):

  

http://wiki.404.city/%D0%94%D0%B6%D0%B0%D0%B1%D0%B1%D0%B5%D1%80

答案 1 :(得分:10)

参与了针对JSXCejabberd的开源XMPP网络客户端(Prosody)的测试,我注意到以下差异。请注意,我已经用ejabberd做了更多,所以自然会有更多的挑剔,但也更多的赞美。

ejabberd

赞成

  • 已实施的机制通常坚如磐石,可能是由于公司背后的原因,提供需要此质量的服务。
  • 使用windeployqt.exe C:\Users\Mofrad\Downloads\macfindertest\macFinderTest\macAddressTest.exe 和管理员网络界面,可以在流程运行时配置许多内容。即使您需要大量触摸配置文件,重新加载它们也能做到正确而不会中断。
  • ejabberd可以很容易地变成集群以提高可靠性或性能
  • 附带内置 STUN / TURN 服务器
  • 共享名册组非常强大,但也需要习惯。

缺点

  • 文档主要是基于选项的,即描述选项,类似于手册页。关于选项如何交互,最佳实践用途,或实际放置选项的位置,特别是在虚拟主机环境中,几乎没有示例,甚至更少的描述。
  • 如果你想扩展 ejabberd,你需要能够掌握Erlang,一种非常强大的语言,但与大多数初学者学习的编程语言有很多不同。< / LI>
  • External Service Discovery (extdisco)也未得到支持。

韵律

赞成

  • 有很多社区模块,因为Lua编程语言更容易访问。
  • 作为一个纯粹的社区项目,如果你想投入时间,你真的可以塑造项目。
  • 支持 ejabberdctl(需要更少的客户端配置)和extdisco(客户更好地支持)

缺点

  • 一些模块(对我来说,最值得注意的是external authentication mechanism) are unreliable
  • 必须重新启动以获取更多配置更新,即客户端将断开连接并且必须重新连接,通常会导致已脱机/联机通知用户。 [更新:我确实知道mod_reload_modules,这本来可以避免一些或这些重启。谢谢,drs!]
  • No persistence用于PEP / PubSub(个人事件协议;发布 - 订阅)数据。这使得它无法用于书签(例如,多用户聊天)和基于XMPP的社交网络,例如Movim

答案 2 :(得分:4)

如果您在RaspberryPI上运行服务器,我会选择Prosody。 它非常轻巧,用Lua编写。

Openfire是java,即使在小型环境中也需要大量资源才能运行。

那里有很多简约的选择,但这完全取决于你所寻求的功能水平。