WebSocket: send() 方法

基线 广泛可用

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

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,则抛出此异常。

规范

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

浏览器兼容性

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