Spring Boot与Stomp JS的Websocket:我不断收到“哎呀!与http://localhost:8080/ws的连接丢失”的提示。

12

我想将聊天功能集成到我制作的应用程序中,在按照一些教程操作并运行应用程序后,我的控制台会不断出现“糟糕!与http://localhost:8080/ws失去连接”的错误。尽管我试过将sockjs路径设置为“/ws”,但仍然遇到了相同的错误。请问有人能够解释一下我错在哪里吗?

这是我的代码片段:

 @Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {


    @Override
    public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {

        stompEndpointRegistry.addEndpoint("/ws")
                .setHandshakeHandler(new CustomHandshakeHandler())
                .withSockJS();

    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {

        registry.setApplicationDestinationPrefixes("/app");

        registry.enableSimpleBroker("/message");

    }
}

这是我的客户

    var socket = new SockJS('http://localhost:8080/ws');

stompClient = Stomp.over(socket);

stompClient.connect({}, onConnected, onError);

function onConnected() {

    console.log("its working");

}


function onError(error) {

    console.log(error);
}

你最终解决了这个问题吗? - zhrgci
2个回答

6
我对你在这里使用的 CustomHandshakeHandler 不太确定,可能需要检查一下。此外,建议将 .setAllowedOrigins("*") 添加到您的 stompEndpointRegistry 中。除此之外,代码看起来还可以,并且应该能正常工作。

在我的情况下,".setAllowedOrigins("*")" 是正确的答案。 - Momo

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接