【发布时间】:2017-04-30 13:51:28
【问题描述】:
根据我目前在互联网上搜索时了解到的情况,openshift 仅提供端口 8000 用于通过 HTTP 打开 Web 套接字连接。
我不知道如何使它适用于带有 Stomp 和 SockJs 的 Spring WebSocket 实现。这是我的代码sn-p,
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 服务器端配置:
@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');
我得到的错误是,
请帮我解决这个错误。
【问题讨论】:
-
这个问题你解决了吗?如果是,您能分享一下您的答案吗?
标签: spring websocket openshift stomp sockjs