從我迄今爲止在互聯網搜索中學到的內容來看,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