WebSocket: send() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

WebSocket.send() 方法会将指定的数据排入队列,通过 WebSocket 连接传输到服务器,并按包含该数据所需的字节数增加 bufferedAmount 的值。如果数据无法发送(例如,因为它需要缓冲但缓冲区已满),则套接字会自动关闭。如果在 CONNECTING 状态下调用 send(),浏览器将抛出异常。如果在 CLOSINGCLOSED 状态下调用 send(),浏览器将静默丢弃数据。

语法

js
send(data)

参数

data

要发送到服务器的数据。它可以是以下类型之一

string

文本字符串。字符串以 UTF-8 格式添加到缓冲区,bufferedAmount 的值会增加表示 UTF-8 字符串所需的字节数。

ArrayBuffer

您可以发送类型化数组对象使用的底层二进制数据;其二进制数据内容会被排入缓冲区,并按所需字节数增加 bufferedAmount 的值。

Blob

指定 Blob 会将 Blob 的原始数据排入队列,以便在二进制帧中传输(Blob.type 会被忽略)。bufferedAmount 的值会增加该原始数据的字节大小。

TypedArrayDataView

您可以将任何 JavaScript 类型化数组 对象作为二进制帧发送;其二进制数据内容会被排入缓冲区,并按所需字节数增加 bufferedAmount 的值。

返回值

无(undefined)。

异常

InvalidStateError DOMException

WebSocket.readyStateCONNECTING 时抛出。

规范

规范
WebSocket
# ref-for-dom-websocket-send①

浏览器兼容性