Serveur XMPP: ejabberd vs openfire vs prosody

J’essaie de comprendre comment fonctionne XMPP (total débutant dans les protocoles en général) et je veux configurer un serveur.

Jusqu’à présent, j’ai vu 3 principaux challengers:

  • ejabberd
  • tirer
  • prosodie

J’ai vérifié sur certains sites Web et sur la wikipedia , mais je ne vois pas le pour et le contre de tous.

Où puis-je trouver des informations compréhensibles?

PS: si le contexte est en quelque sorte important, je veux configurer mon serveur sur mon Raspberry Pi personnel (donc pas beaucoup de puissance de traitement), et mon but ultime est d’utiliser XMPP pour une petite application Android utilisant la messagerie cloud Google.

Ayant été impliqué dans le test d’un client Web XMPP ( JSXC ) open-source contre ejabberd et Prosody , j’ai remarqué les différences suivantes. S’il vous plaît noter que j’ai fait plus avec ejabberd, donc il y aura naturellement plus de nitpicking, mais aussi plus de louanges.

ejabberd

Avantages

  • Les mécanismes mis en place sont généralement solides , probablement parce qu’une entreprise est derrière elle, offrant des services qui exigent cette qualité.
  • Avec ejabberdctl et l’interface Web d’administration, il est possible de configurer beaucoup de choses pendant l’exécution du processus . Même si vous devez fortement toucher les fichiers de configuration, les recharger est la solution idéale sans interruption.
  • ejabberd peut facilement être transformé en cluster pour la fiabilité ou la performance
  • Livré avec un serveur STUN / TURN intégré
  • Les groupes de membres partagés sont très puissants, mais ils doivent aussi s’habituer.

Les inconvénients

  • La documentation est principalement basée sur des options, c.-à-d. Que les options sont décrites, comme une page de manuel. Il y a peu d’exemples et encore moins de descriptions de la façon dont les options interagissent, quelle serait la meilleure utilisation des pratiques ou, en fait, où vous metsortingez cette option, en particulier dans un environnement d’hébergement virtuel.
  • Si vous voulez étendre ejabberd, vous devez être capable de comprendre Erlang , un langage très puissant, mais avec pas mal de différences avec les langages de programmation que la plupart des débutants apprennent.
  • La gestion des archives de messages n’est actuellement pas prise en charge dans la version finale ( mam:2 ) , mais uniquement dans une version intermédiaire.
  • La découverte de service externe ( extdisco ) n’est pas (encore) prise en charge non plus.

Prosodie

Avantages

  • A beaucoup de modules de communauté , en raison de l’accessibilité plus facile du langage de programmation Lua .
  • En tant que projet communautaire pur, si vous voulez investir du temps, vous pouvez vraiment façonner le projet.
  • extdisco charge extdisco (nécessite moins de configuration client) et mam:2 (mieux pris en charge par les clients)

Les inconvénients

  • Certains modules (pour moi, le plus notable était le mécanisme d’authentification externe) ne sont pas fiables .
  • Doit être redémarré pour plus de mises à jour de configuration, c.-à-d. Que les clients seront déconnectés et devront se reconnecter, causant généralement une mise hors ligne / des notifications en ligne aux utilisateurs. [Mise à jour: je connaissais mod_reload_modules , ce qui aurait évité certains de ces redémarrages. Merci, drs!]
  • Pas de persistance pour les données PEP / PubSub ( Personal Eventing Protocol; Publish-Subscribe ). Cela le rend inutilisable à la fois pour le bookmarking (par exemple, les discussions multi-utilisateurs) et les réseaux sociaux basés sur XMPP tels que Movim

Mon logiciel serveur XMPP Top

Top: utilisation statistique

  • 1) Ejabberd (61.6279%)
  • 2) la prosodie (17.0543%)
  • 3) OpenFire (7,36434%)

Top: utilisation multi-core

  • 1) Ejabberd et Openfire

  • 2) —!

Haut: utilisation de la mémoire

  • 1) la prosodie
  • 2) Ejabberd
  • 3) Openfire

En haut: Web-admin

  • 1) Openfire

  • 2) Ejabberd

  • 3) non (par défaut)

Top: Langage de programmation

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

  • 2) Ejabberd (Erlang)


Personnal / Framboise pi / ejabberd vs openfire vs prosody = (mon choix) prosodie


Utilisation statistique (wiki russe):

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

Révision (wiki russe):

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

Si vous exécutez votre serveur sur RaspberryPI, je choisirais Prosody. Il est très léger et écrit en Lua.

Openfire est Java et nécessite une bonne quantité de ressources pour fonctionner, même dans un petit environnement.

Il existe de nombreuses alternatives minimalistes, mais tout dépend du niveau de fonctionnalité recherché.