需要实现前端页面->zuul网关->消息服务,建立websocket连接
使用spring-cloud-netflix-zuul-websocket 实现zuul网关层对websocket的转发;
注意事项:
1.前端使用sockjs,注意地址前缀
// 不要使用ws前缀!!,如果使用websocket(url),为ws前缀
var socket = new SockJS('http://datamgt-services.respool.wmcloud-qa.com/notify-websocket')
注:如果使用ws前缀会报如下异常:
sockjs.min.js:27 Failed to load ws://xx/info: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
2.后端注意开启跨域和指定sockjs协议:
@Override
public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
//注册一个名字为"notify-websocket" 的endpoint,并指定 SockJS协议。 点对点-用
stompEndpointRegistry
.addEndpoint("/notify-websocket")
.setAllowedOrigins("*")
.withSockJS();
}<