Websocket 只有 path
和 protocol
可以被指定。
不能用 JS 给 Websocket 添加 Authorization
一类的自定义请求头
在 JavaScript WebSockets API 中没有为浏览器或 (Node) cli 添加额外请求头的方法。 只有请求路径 (“GET /xyz”) 和协议 (“Sec-WebSocket-Protocol”) 可以在 WebSocket 构造函数中指定。
var ws = new WebSocket("ws://example.com/path", "protocol");
var ws = new WebSocket("ws://example.com/path", ["protocol1", "protocol2"]);
上面代码得到的请求头分别是:
Sec-WebSocket-Protocol: protocol
Sec-WebSocket-Protocol: protocol1, protocol2
为 WebSocket 做认证的常规方案是:服务端实现一个 ticket
,客户端在建立连接后,发送第一条信息时,在 URL 或 query string
中传递这个 ticket
,服务端检查其是否有效。