使用stomp时,如何通过“ ws://” URL使springboot应用程序Websocket应用程序连接

时间:2018-11-04 14:31:46

标签: java spring-boot websocket

我有一个springboot应用程序,我想使websocket通过电话之类的设备进行连接,所以我正在寻找一种使我的websocket具有以“ ws://”开头的入口点的方法。在测试我的默认Websocket URL(在“ http://www.websocket.org/echo.html”上应为“ ws:// localhost:8080 / websocket-example”)时,它不会通过。但是sockjs使用(“ http://localhost:8080/websocket-example”)在我的客户端中调用它,它可以正常工作:

    var socket = new SockJS('http://localhost:8080/websocket-example');

    stompClient = Stomp.over(socket);

    stompClient.connect({},function (frame) {


}

我目前正在使用stomp,其配置如下所示:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {


    @Override
    public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
        stompEndpointRegistry.addEndpoint("/websocket-example")
                .setHandshakeHandler(new CustomHandshakeHandler()).setAllowedOrigins("*")
                .withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableSimpleBroker("/topic");
        registry.setApplicationDestinationPrefixes("/app");
    }
}

根据此post,它说我可以通过删除.withSockJS()来实现ws://入口点,但是它仍然没有用(在进一步阅读时,有人说这没有用)在springboot上)。另一个选项是完全删除脚,此选项有效,但后来我无法将消息直接路由到个人用户。

如何在服务器端保持脚踩的同时创建ws://入口点?

1 个答案:

答案 0 :(得分:0)

我有类似的问题。试试这个,应该有帮助。

var socket = new WebSocket('ws://localhost:8080/websocket-example/websocket');