Java WebSocket 客户端 Spring 启动
Java WebSocket Client Spring boot
我想创建一个 spring 启动应用程序,它带有连接到网络套接字服务器的网络套接字客户端。
例如,我使用了您可以在 Spring Boot.
中找到的入门指南
https://spring.io/guides/gs/messaging-stomp-websocket/
在此示例中,您使用 spring 启动创建了一个网络套接字服务器,并使用 JavaScript 连接到它。
我想 运行 该服务器并使用另一个 spring 创建 WebSocketClient 对象的引导应用程序连接到它。
这是我在 Spring Boot client App
中创建的 WebSocketClientConfiguration class
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketClientConfig {
@Bean
public WebSocketClient webSocketClient() {
final WebSocketClient client = new StandardWebSocketClient();
final WebSocketStompClient stompClient = new WebSocketStompClient(client);
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
final StompSessionHandler sessionHandler = new MyStompSessionHandler();
stompClient.connect("ws://localhost:8080", sessionHandler);
return client;
}
}
但是在我的 class MyStompSessionHandler 中,在 handleTransportError 方法中我可以看到异常是
javax.websocket.DeploymentException: The HTTP response from the server [200] did not permit the HTTP upgrade to WebSocket
知道我做错了什么吗?
我终于明白了。它失败的原因是因为你需要把它放在 URL
ws://localhost:8080/gs-guide-websocket
像这样URI.create("ws://localhost:8080/gs-guide-websocket")
我想创建一个 spring 启动应用程序,它带有连接到网络套接字服务器的网络套接字客户端。
例如,我使用了您可以在 Spring Boot.
中找到的入门指南https://spring.io/guides/gs/messaging-stomp-websocket/
在此示例中,您使用 spring 启动创建了一个网络套接字服务器,并使用 JavaScript 连接到它。
我想 运行 该服务器并使用另一个 spring 创建 WebSocketClient 对象的引导应用程序连接到它。
这是我在 Spring Boot client App
中创建的 WebSocketClientConfiguration class@Configuration
@EnableWebSocketMessageBroker
public class WebSocketClientConfig {
@Bean
public WebSocketClient webSocketClient() {
final WebSocketClient client = new StandardWebSocketClient();
final WebSocketStompClient stompClient = new WebSocketStompClient(client);
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
final StompSessionHandler sessionHandler = new MyStompSessionHandler();
stompClient.connect("ws://localhost:8080", sessionHandler);
return client;
}
}
但是在我的 class MyStompSessionHandler 中,在 handleTransportError 方法中我可以看到异常是
javax.websocket.DeploymentException: The HTTP response from the server [200] did not permit the HTTP upgrade to WebSocket
知道我做错了什么吗?
我终于明白了。它失败的原因是因为你需要把它放在 URL
ws://localhost:8080/gs-guide-websocket
像这样URI.create("ws://localhost:8080/gs-guide-websocket")