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")