vert.x

___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123websocket ___ WebSocket ist eine API, die auf TCP-Sockets und einem Protokoll für die bidirektionale Vollduplex-Kommunikation zwischen Client und Server ohne den Overhead von HTTP aufbaut. ___ qstnhdr ___ Wie verwalte ich verbundene Benutzer über Websocket mit Vert.x 3? ___ qstntxt ___

Um einige Leute davon zu überzeugen, von der alten Schule zu wechseln, muss ich eine Chat-Demo-Anwendung erstellen, die mehr als 10K gleichzeitige Verbindungen mit Java (wie Node.Js ) verwaltet Sachen).

Ich habe Netty 5.0 getestet, was großartig ist, aber viel Arbeit erfordert; Auf der anderen Seite ist Jetty 9.3 großartig, aber im Vergleich zu anderen Konkurrenten langsam.

Nach einigem Suchen habe ich das Vert.x 3-Toolkit, das auf Netty basiert, mit einer Fülle toller Tools gefunden (das Rad muss nicht neu erfunden werden), habe ich Ich habe die Beispiele in git gesehen und konnte einen Websocket Server aufbauen.

%Vor%

Da ich neu in der Welt von Vert.x bin, konnte ich nicht herausfinden, wie ich verbundene Benutzer damit umgehen kann. Normalerweise ist der alte Weg, etwas wie:

zu verwenden %Vor%

Wenn eine Verbindung hergestellt ist, überprüfe ich, ob sie existiert; Wenn nicht, füge ich es als neuen Eintrag hinzu und mache einige Funktionen, um die Sammlung zu senden, zu senden, durch die Sammlung zu laden und so weiter.

Meine Frage ist, ob Vert.x 3 etwas mit Verbindungen zu tun hat, um sie zu verfolgen und diejenigen zu entfernen, die gegangen sind (Ping-Pong), Broadcasts usw. oder sollte ich sie von Grund auf mit Cookies implementieren , Sitzung, ....)

Ich konnte mit Vert.x 3 kein echtes Beispiel finden.

    
___ answer47305447 ___

Grundsätzlich stellt der Umfang des websocketHandler eine Verbindung dar. In Ihrem Beispiel ist dies Ihre anonyme Klasse. Ich habe einen kleinen Websocket-Chat erstellt Beispiel , in dem ich den Vert.x-Ereignisbus verwende, um die Nachrichten an alle Clients zu verteilen .

In der Startmethode des Servers behandeln wir die Websocket-Verbindungen. Sie können den closeHandler implementieren, um die Clienttrennung zu überwachen. Es gibt auch Handler für Ausnahmen, Ping-Pong usw. Sie können eine bestimmte Verbindung identifizieren, indem Sie die textHandlerID verwenden, aber Sie haben auch Zugriff auf die entfernte Adresse.

%Vor%

Das Client-Beispiel wird ebenfalls in Java geschrieben. Es druckt nur alle empfangenen Nachrichten auf der Websocket-Verbindung zur Konsole. Nach der Verbindung sendet es eine Nachricht.

%Vor%     
___ tag123vert ___ Vert.x ist ein ereignisgesteuertes Toolkit, das auf der JVM läuft und die Entwicklung asynchroner Webanwendungen in Java, Javascript, Scala, Ruby, Ceylon, Kotlin und Groovy ermöglicht. ___
1
Antwort

Wie verwalte ich verbundene Benutzer über Websocket mit Vert.x 3?

Um einige Leute davon zu überzeugen, von der alten Schule zu wechseln, muss ich eine Chat-Demo-Anwendung erstellen, die mehr als 10K gleichzeitige Verbindungen mit Java (wie Node.Js ) verwaltet Sachen). Ich habe Netty 5.0 getestet, was g...
29.09.2015, 12:07