Из того, что я узнал до сих пор при поиске через Интернет, openshift предоставляет только порт 8000 для открытия соединения через сокет через HTTP.Ошибка во время рукопожатия WebSocket: Неожиданный код ответа: 400 при использовании Spring Websocket, Stomp, SockJS в Openshift
Что я не могу понять, так это как заставить его работать с Spring WebSocket с помощью Stomp и SockJs. Вот мой фрагмент кода,
WebSocket стороне клиента Реализация:
function connect() {
var socket = new SockJS('http://jbossews-nabac.rhcloud.com:8000/portal/ws');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/queue/reply/${pageContext.session.id}', function(greeting) {
showGreeting(greeting.body);
});
});
}
WebSocket ServerSide Configration:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketDefaultConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic/", "/queue/");
config.setApplicationDestinationPrefixes("/portal");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws")
.withSockJS()
.setInterceptors(httpSessionIdHandshakeInterceptor());
}
@Bean
public HttpSessionIdHandshakeInterceptor httpSessionIdHandshakeInterceptor() {
return new HttpSessionIdHandshakeInterceptor();
}
}
И если я попробовать этот способ,
var socket = new SockJS('/portal/ws');
Ошибка я получаю,
Пожалуйста, помогите мне исправить эту ошибку.
Вы решили эту проблему? Если да, можете ли вы поделиться своим ответом? – Debopam