WebSocket:WebSocket() 构造函数

基线 广泛可用

此功能已得到良好建立,并且可在许多设备和浏览器版本上运行。它自以下时间起在浏览器中可用 2015 年 7 月.

WebSocket() 构造函数返回一个新的 WebSocket 对象,并立即尝试建立到指定 WebSocket URL 的连接。

语法

js
new WebSocket(url)
new WebSocket(url, protocols)

参数

url

要连接到的目标 WebSocket 服务器的 URL。URL 必须使用以下方案之一:wswsshttphttps,并且不能包含 URL 片段。如果提供相对 URL,则相对于调用脚本的基本 URL。

protocols 可选

表示客户端想要使用的子协议的一个字符串或字符串数组。如果省略,则默认使用空数组,即 []

单个服务器可以实现多个 WebSocket 子协议,并根据指定的值处理不同类型的交互。允许的值是可以在 Sec-WebSocket-Protocol HTTP 标头中指定的那些值。

请注意,在与服务器协商子协议之前,连接不会建立。然后可以从 WebSocket.protocol 读取选定的协议。

异常

SyntaxError DOMException

如果以下情况则抛出

  • url 的解析失败
  • url 的方案不是 wswsshttphttps
  • url片段
  • protocols 中的任何值都出现多次,或者无法满足 WebSocket 协议规范中定义的构成 Sec-WebSocket-Protocol 字段值的元素的要求

示例

以下示例显示了如何连接到 WebSocket

以下代码显示了如何使用具有 wss 方案的 URL 连接到套接字

js
const httpsWebSocket = new WebSocket('wss://websocket.example.org');
console.log(httpsWebSocket.url); // 'wss://websocket.example.org'
... // Do something with socket
httpsWebSocket.close();

连接到 HTTPS URL 的代码几乎相同。在后台,浏览器将其解析为“WSS”连接,因此 WebSocket.url 将具有方案“wss:”。

js
let wssWebSocket = new WebSocket('https://websocket.example.org');
console.log(wssWebSocket.url); // 'wss://websocket.example.org'
... // Do something with socket
wssWebSocket.close();

我们还可以解析相对 URL。绝对 URL 将取决于调用它的上下文的基 URL。

js
relativeWebSocket = new WebSocket('/local/url');
... // Do something with socket
relativeWebSocket.close();

规范

规范
WebSockets 标准
# ref-for-dom-websocket-websocket①

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅