У меня есть приложение 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 на моем сервере?