如何将安全WebSocket与sock js一起使用

如何将安全WebSocket与sock js一起使用,websocket,sockjs,Websocket,Sockjs,我正在使用SockJS客户端。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. Cros

我正在使用SockJS客户端。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服务器实现需要任何类似的配置吗?

请尝试以下代码

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

浏览了sock JS客户机代码:我浏览了客户机代码-sock JS负责它-如果它的HTTPS使用WSS,那么它使用WSS

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客户端API连接java客户端

这不是关于如何访问服务器,我可以使用相对ULR-我在哪里指定WSS?你必须使用http或HTT而不是ws或WSS。新的SockJS('HTTPS://'+window.location.host+'/SockJS/echo')此代码的连接方式类似'wss://localhost:port/sockjs/echo你的答案是+1。它帮助了我。也请帮忙