【发布时间】:2018-04-10 11:03:11
【问题描述】:
我正在尝试与需要基本访问身份验证的 Web Socket 建立连接(客户端)。从文档中我知道我应该使用带有 base64 加密的用户名和密码。它是 node.js 应用程序,所以我决定使用 npm 包 SockJS-client。这似乎是一个很好的解决方案,因为:
在底层 SockJS 会首先尝试使用本机 WebSockets。如果失败,它可以使用各种特定于浏览器的传输协议,并通过类似 WebSocket 的抽象来呈现它们。
但我不知道如何使用基本访问身份验证建立连接。我已经尝试过here 的解决方案,但是这个
var ws = new WebSocket("ws://username:password@example.com/service");
不起作用,我收到如下错误:
SyntaxError:URL 的方案必须是“http:”或“https:”。 'ws:' 是不允许的。
当我尝试使用 http/https 时,我得到了:
错误:InvalidStateError:连接尚未建立
当我试图打电话时
sock.send('test');
由于我无法访问 Web Socket 的服务器端,因此无法实现以下其他解决方案。
var ws = new WebSocket("ws://example.com/service?key1=value1&key2=value2");
我不知道如何正确地与 Web Socket 建立经过身份验证的连接,如果您知道任何解决方案,请告诉我。
【问题讨论】:
标签: javascript node.js sockets authentication websocket