Как я могу сделать так, чтобы мое приложение Springboot websocket подключалось через URL "ws: //" при использовании stomp - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть приложение springboot, и я хочу, чтобы веб-сокет подключался через такие устройства, как телефон, поэтому я ищу способ, чтобы моя веб-розетка имела точку входа, начинающуюся с "ws: //". При тестировании моего URL-адреса веб-сокета по умолчанию, который должен быть «ws: // localhost: 8080 / websocket-example» на «http://www.websocket.org/echo.html", он не проходит. Но 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");
    }
}

согласно этому сообщению сказано, что я могу достичь точки входа ws: //, удалив .withSockJS(), что я и сделал, но все равно не сработало (при дальнейшем чтении было указано, что это не работает на спрингбуте). Другой вариант состоял в том, чтобы полностью удалить stomp, этот вариант работает, но тогда я не смог бы направить сообщения напрямую отдельным пользователям.

Как мне создать точку входа ws: //, сохраняя при этом stomp на моем сервере?

1 Ответ

0 голосов
/ 05 ноября 2018

У меня была похожая проблема. Попробуйте это, должно помочь.

var socket = new WebSocket('ws://localhost:8080/websocket-example/websocket');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...