Ich spiele gerade mit der neuen (ab Version 4.2) Java STOMP Client-Unterstützung. Mein Ausgangspunkt ist der Leitfaden für die ersten Schritte ( Verwenden von WebSocket zum Erstellen einer interaktiven Webanwendung ).
Der folgende Endpunkt wird im Beispiel bereitgestellt:
%Vor%Ich kann eine Verbindung mit dem Browser-Client herstellen. Wenn Sie versuchen, mit dem java stomp-Client eine Verbindung zu diesem Endpunkt herzustellen, verwenden Sie Folgendes:
%Vor%Ich begegne der folgenden Ausnahme:
%Vor%Bei weiteren Untersuchungen habe ich die Server-Endpunktkonfiguration auf der Basis von TomcatWebSocketTestServer.java wie folgt geändert:
%Vor%Ich kann jetzt verbinden, aber die Browser-Clients können nicht.
%Vor%Wenn ich .withSockJs () zur Endpunktkonfiguration hinzufüge:
%Vor%Die Browser-Clients können sich wieder verbinden, aber der Java-Client ist zurück auf den ursprünglichen Fehler.
Kann ich den gleichen Endpunkt zwischen beiden Clients teilen oder muss ich in diesem Fall zwei separate Endpunkte konfigurieren?
Die folgende Konfiguration funktioniert:
%Vor%Nicht sicher, ob dies beabsichtigt ist (d. h. zwei Endpunkte mit demselben Pfad)?
Eine bessere Lösung, basierend auf Brian-Clozels Feedback, ist die Verwendung des Java SockJsClient als Transport beim Konfigurieren des WebSocketStompClient:
%Vor%ermöglicht die Verwendung von nur einem Endpunkt, zu dem die Java- und JavaScript-Clients beide verbinden können:
%Vor% Wie in die Referenzdokumentation : Beim Aktivieren von SockJS werden mehrere Transporte für Sie konfiguriert. Zuerst sendet der Client eine "GET /info"
-Anforderung, um über unterstützte Transporte zu wissen, und sendet dann abhängig von seinen Fähigkeiten eine Anfrage:
Jetzt müssen Sie Ihre Konfiguration für Ihren "/hello"
Endpunkt nicht duplizieren. Sie verwenden lieber den Websocket-Endpunkt oder besser den Java SockJS-Client mit einem Websocket-Transport. Siehe Komplettes Beispiel in der Referenzdokumentation .
Tags und Links java spring spring-websocket