Ich arbeite an einer Anwendung zur Bereitstellung eines Chat-Dienstes für Benutzer einer sozialen Website. Bevor ich damit anfing, wusste ich nichts über das XMPP-Protokoll und ich habe fast 50 % des grundlegenden Chat-Betriebs auf dem Server entwickelt, ohne dieses Protokoll zu befolgen. Aber jetzt möchte ich dieses Protokoll und einen der verfügbaren Open-Source-Server verwenden und mein eigenes Programm wegwerfen (was für mich sehr schwierig ist).
Ich brauche einen XMPP-Server, der
Ich brauche die meisten ihrer Verbindungen die meiste Zeit am Leben.
Wir möchten alle Nachrichten sofort zustellen, auch wenn sich der Benutzer nicht in der Anwendung befindet (z. B. in Android durch Ausführen einer Dienstaktivität/eines Threads).
Ich brauche Hilfe, bitte stellen Sie ein Jabber/XMPP-Server-Open-Source-Programm vor, das das kann (und unter Linux und/oder Windows läuft).
Ich muss ein Programm wie Nimbuzz mit einigen Unterschieden und Anpassungen bereitstellen.
Offenlegung: Ich arbeite an MongooseIM.
Ich empfehle einen der Erlang-basierten Server: entweder MongooseIM oder ejabberd . MongooseIM war ursprünglich ein Fork von Ejabberd, aber die Codebasen haben sich in den letzten Jahren ziemlich stark voneinander entfernt.
Diese Server heben sich von den anderen Optionen nicht in Bezug auf den Funktionsreichtum ab ( sie bieten jedoch viele Funktionen ), sondern weil sie die von der Erlang/OTP-Plattform angebotenen Skalierbarkeitsmechanismen nutzen. Um deine Punkte anzusprechen:
ist skalierbar
Erlang ist erstaunlich skalierbar. WhatsApp ist das neueste Aushängeschild für die Skalierbarkeit von Erlang, aber wenn Sie googeln, finden Sie noch viel mehr.
kann zwischen 10 und 15 Millionen Benutzer verwalten
Wenn Sie auf Millionen von Benutzern skalieren möchten, sollten Sie darauf vorbereitet sein, einen Cluster aus kräftigen Maschinen mit viel RAM aufzubauen (beide Server sind speichergebunden). Es gibt Bereitstellungen in freier Wildbahn mit ~ 2 Millionen Benutzern, von denen ich weiß. Der League of Legends -Chat betreibt mehrere föderierte Cluster, die 70 Millionen Benutzer verwalten, aber sie verwenden einen sehr stark modifizierten Ejabberd.
läuft auf Linux und/oder Windows
Sie sind wahrscheinlich besser dran, unter Linux zu laufen. Erlang funktioniert unter Windows, aber ich bin mir nicht sicher, wie gut groß angelegte Anwendungen auf der Plattform funktionieren.
ist Open-Source
Ja, beide sind Open Source und unter der GPL lizenziert.
ejabberd hat eine große Anzahl von groß angelegten Bereitstellungen und wird von Nimbuzz verwendet.
Die ejabberd-Community hat damit begonnen, eine Webseite mit Anwendungsfällen für den Einsatz von ejabberd-XMPP-Servern zusammenzustellen. Dies ist nur eine kleine Untergruppe von ihnen, die Varianten von Ejabberd (Like Business Edition) und nur diejenigen enthält, die ihre Verwendung von Ejabberd offengelegt haben (ich kenne viel mehr Fälle, die die Verwendung nicht offenlegen möchten).
Referenz: Anwendungsfallseite auf der ejabberd-Dokumentationsseite .
unoder