Wenn Sie mit XMPP-Servern vertraut sind, dann müssen Sie openfire wissen. Ich habe vor, eine JSON-Version von openfire zu schreiben (imo xml ist veraltet und json ist viel schneller und openfire ist langsamer als sein Partner Tigase, aber beide haben Probleme), aber der einzige Teil, an dem ich feststecke, ist Wenn Clustering (zum Beispiel mit HazzelCast) und ein Kontakt sendet eine Nachricht an eine Instanz des Servers, aber das Ziel ist auf einer anderen Instanz, dann muss ich entweder die Verbindung freigegeben haben oder ich sollte eine Art von Speicher-basierte Warteschlange verwenden, um die zu senden Paket zum Ziel.So teilen Sie Socket-Verbindungssitzungen in Java-Servern
Ich versuchte, die Openfire Quelle zu lesen, aber es war zu kompliziert, so habe ich beschlossen, meine Frage hier zu teilen:
Wie eine einzelne TCP Connetion serveral Cluster-Servern verwenden kann Paket senden?
Ich werde Netty für ein Netzwerk-Framework verwenden.
sodass Openfire und andere Clusterserver eine gemeinsam genutzte Warteschlange zum Senden von Nachrichten verwenden? – Reza
Sie können viele Dinge verwenden, wenn Sie auf Systemebene arbeiten, können Sie auch eine Umleitung zum richtigen Server erreichen und den TCP-Header auf Paketebene anreichern. Lösungen können sehr unterschiedlich sein. In Java haben Sie jedoch nicht die Möglichkeit, auf dieser Ebene zu arbeiten, es sei denn, Sie tun JNI, aber an diesem Punkt tun Sie C. –
Ich denke nicht, dass das funktionieren kann, weil jeder Benutzer an einem anderen Port auf einem anderen sein kann Server (für Multi-User-Chat). trotzdem danke – Reza