如何将安全网络套接字与 sock js 一起使用



我正在使用SockJS-client。SockJS 构造函数将相对 URL 作为

var ws= new SockJS('/spring-websocket-test/sockjs/echo', undefined,{protocols_whitelist: [transport]});

我们在哪里指示使用 WSS://而不是 WS://。如果我尝试绝对URL,它会给出错误:

XMLHttpRequest cannot load ws://localhost:8080/appname/app. Cross origin requests are only supported for HTTP.
_ws_onclose. wasClean: false code: 1002 reason: Can't connect to server

不知道为什么会收到此错误。Spring Server Implementation上需要任何类似的配置吗?

浏览了袜子JS客户端代码:I通过客户端代码 - sock JS 会照顾它 - 如果它的 HTTPS 它使用 WSS,否则它会做 WS

var that = this;
var url = trans_url + '/websocket';
if (url.slice(0, 5) === 'https') {
    url = 'wss' + url.slice(5);
} else {
    url = 'ws' + url.slice(4);
}

不需要用SockJS构造函数传递WS或WSS(实际上甚至不是HTTP/HTTPS)-只需相对URL就足够了。SockJs 客户端库负责处理它。我遇到的另一个令人惊讶的事实,它在URL的末尾附加了"/websocket" - 这给了我为什么我无法使用jetty websocket-client apis与java客户端连接线索

试试这段代码。

var ws= new SockJS('http://localhost:8080/sockjs/echo', undefined,{protocols_whitelist: [transport]});

相关内容

  • 没有找到相关文章

最新更新