Mon erreur s'affiche dans la console de mon navigateur:
"WebSocket connection to 'ws://localhost:32768/DspClusterWebServices/myHandler' failed: Unexpected response code: 200"
J'utilise Spring Websockets 4.1.5
et Tomcat 8.0.18
. Ma classe d'implémentation WebSocketConfigurer ressemble à:
@Configuration @Controller @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { class MyHandler implements WebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { System.out.println("afterConntectionEstablished called"); } ...implements rest of functions with a System.out.println and false for supportsPartialMessages() } } @Override registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "myHandler").withSockJS(); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } }
Mon testWebsocketClient.js tente de se connecter à ce code, mais a un code d'erreur de 200:
websocket = new WebSocket("ws://localhost:8080/myApp/myHandler");
Je ne peux pas comprendre ce qu'il faut essayer ensuite. Je pensais que cela provoquerait la suppression de la méthode afterConnectionEstablished (session WebSocketSession) Le code 200 n'est-il pas bon?
Veuillez vérifier http://procbits.com/connecting-to-a-sockjs-server-from-native-html5-websocket !
Après avoir ajouté /websocket
(à votre URL), il vous donnera l'erreur
Impossible d'analyser la valeur d'en-tête d'origine [null]
;), Qui vous conduira ensuite à ce lien .
Vous devrez ajouter .setAllowedOrigins("*")
à votre méthode addHandler()
, puis cela pourrait enfin fonctionner!
Jetez un oeil à la spécification . Le serveur doit répondre avec 101
pour signaler le changement de protocole de http
à ws
.
Vérifiez que si 'ws: // localhost: 32768 / DspClusterWebServices / myHandler' est correct.