WebSocketStompClient stellt keine Verbindung zum SockJS-Endpunkt her

7

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?

    
stacktrace 23.05.2015, 13:40
quelle

2 Antworten

15

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%     
stacktrace 23.05.2015, 15:48
quelle
5

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:

%Vor%

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 .

    
Brian Clozel 25.05.2015 12:03
quelle

Tags und Links