XMPP 服务器:ejabberd vs openfire vs prosody

XMPP server : ejabberd vs openfire vs prosody

我正在尝试弄清楚 XMPP 是如何工作的(总的来说是协议的初学者)并且我想设置一个服务器。

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

我查看了一些网站和 the wikipedia,但我看不出所有这些网站的优缺点。

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

PS :如果上下文在某种程度上很重要,我想将我的服务器设置在我个人的 raspberry pi 上(所以没有那么多的处理能力),我的最终目标是使用 XMPP使用 google 云消息传递的小 android 应用程序

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

编写

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

有很多简约的替代品,但这完全取决于您寻求的功能级别。

我的顶级 XMPP 服务器软件

顶部:统计用途

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

上:多核使用

  • 1) Ejabberd 和 Openfire

  • 2) --- !

顶部:内存使用

  • 1) 韵律
  • 2) Ejabberd
  • 3) 开火

顶部:网络管理员

  • 1) 开火

  • 2) Ejabberd

  • 3) 否(默认)

顶部:编程语言

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

  • 2) Ejabberd(Erlang)


个人/Raspberry pi/ejabberd vs openfire vs prosody =( 我的选择)Prosody


统计用途(俄罗斯维基百科):

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

参与测试开源 XMPP web 客户端(JSXC) against ejabberd and Prosody,我注意到以下差异。请注意,我用 ejabberd 做的更多,所以自然会有更多的挑剔,但是也多点赞。

Ejabberd

优点

  • 已实施的机制通常坚如磐石,可能是因为背后有一家公司提供需要这种质量的服务。
  • 使用 ejabberdctl 和管理 Web 界面,可以在 运行 的过程中 配置很多东西。即使您需要大量修改配置文件,重新加载它们也能做到正确,不会中断。
  • ejabberd 可以很容易地变成一个 集群 以提高可靠性或性能
  • 带有内置 STUN/TURN 服务器
  • 共享名册组非常强大,但也需要习惯。

缺点

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

韵律

优点

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

缺点

  • 一些模块(对我来说,最值得注意的是 external authentication mechanism) are unreliable
  • 必须重新启动才能进行更多配置更新,即客户端将断开连接并必须重新连接,通常会导致已offline/come联机 给用户的通知。 [更新:我确实知道 mod_reload_modules,这可以避免一些或这些重新启动。谢谢,博士!]
  • No persistence for PEP/PubSub (Personal Eventing Protocol; Publish-Subscribe) data. This makes it unusable for both bookmarking (e.g., multi-user chats) and XMPP-based social networks such as Movim

如果您是 XMPP 服务器 setup/Lua(或兼容的编程语言)的新手,我建议您使用 Openfire。 Web 管理控制台使设置变得非常简单。有多种插件可满足各种不同的需求。但请注意,Openfire 为自己保留了 >1GB 的内存。