从我迄今为止在互联网搜索中学到的内容来看,openshift仅提供用于通过HTTP打开web套接字连接的端口8000。WebSocket握手期间出现错误:意外的响应代码:400在Openshift中使用Spring Websocket,Stomp和SockJS
我无法弄清楚的是,如何使它与Stomp和SockJs一起使用Spring WebSocket实现。这里是我的代码片段,
的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的服务器端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