Сервер XMPP: ejabberd против openfire против просодии

Я пытаюсь выяснить, как работает XMPP (общий новичок в протоколах вообще), и я хочу настроить сервер.

До сих пор я видел 3 основных претендента:

  • ejabberd
  • Openfire
  • просодии

Я проверил на каком-то веб-сайте и на википедии, но я не могу видеть за и против всех.

Где я могу найти понятную информацию?

PS: если контекст каким-то образом важен, я хочу установить свой сервер на свой персональный малиновый pi (так что не так много вычислительной мощности), и моя конечная цель - использовать XMPP для небольшого приложения для Android с помощью облачной службы сообщений Google

Ответ 1

Приняв участие в тестировании XMPP-клиента с открытым исходным кодом (JSXC) в отношении ejabberd и Prosody, я заметил следующие различия. Обратите внимание, что я сделал больше с ejabberd, так что, естественно, будет больше придирки, но и больше похвалы.

ejabberd

Доводы

  • Механизмы, которые были внедрены, обычно надежны, вероятно, из-за того, что за ними стоит компания, предлагающая услуги, требующие такого качества.
  • С помощью ejabberdctl и веб-интерфейса администратора можно настраивать многие параметры во время выполнения процесса. Даже если вам нужно сильно дотронуться до конфигурационных файлов, их перезагрузка работает правильно, без перерыва.
  • ejabberd можно легко превратить в кластер для надежности или производительности
  • Поставляется со встроенным STUN/TURN сервером
  • Группы общего реестра очень мощные, но к ним нужно привыкнуть.

Против

  • документация в основном основана на опциях, т.е. описаны опции, аналогично странице руководства. Существует несколько примеров и даже меньше описаний того, как взаимодействуют параметры, каков наилучший способ их использования или где вы могли бы разместить этот параметр, особенно в среде виртуального хостинга.
  • Если вы хотите расширить ejabberd, вам нужно уметь понимать Erlang, очень мощный язык, но с некоторыми отличиями от языков программирования, которые изучают большинство начинающих.
  • Обнаружение внешних служб (extdisco) (пока) также не поддерживается.

Просодия

Доводы

  • Имеет множество модулей сообщества из-за более легкой доступности языка программирования Lua.
  • Если вы хотите потратить время на проект сообщества, вы действительно можете сформировать проект.
  • поддерживает extdisco (требуется меньше настроек клиента) и mam:2 (лучше поддерживается клиентами)

Против

  • Некоторые модули (для меня наиболее заметным из них был механизм внешней аутентификации) ненадежны.
  • Должен быть перезапущен для дополнительных обновлений конфигурации, т.е. клиенты будут отключены и должны будут повторно подключиться, что обычно приводит к отключению/приходу уведомлений для пользователей. [Обновление: я знал о mod_reload_modules, который мог бы избежать некоторых или этих перезапусков. Спасибо, д-р!]
  • Нет данных для данных PEP/PubSub (протокол личных событий; публикация-подписка). Это делает его непригодным для закладок (например, для многопользовательских чатов) и для социальных сетей на основе XMPP, таких как Movim

Ответ 2

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) no (по умолчанию)

Вверх: язык программирования

  • 1) Openfire (Java) и Просодия (Lua)

  • 2) Ejabberd (Erlang)


Personnal/Raspberry pi/ejabberd vs openfire vs prosody = (Мой выбор) Просодия


Статистическое использование (Russian Wiki):

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

Обзор (Russian Wiki):

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

Ответ 3

Если вы используете свой сервер на RaspberryPI, я бы выбрал Prosody. Он очень легкий и написан в Lua.

Openfire - это java и требует большого количества ресурсов для запуска, даже в небольшой среде.

Существует множество минималистических альтернатив, но все зависит от того, какой уровень функциональности вы ищете.