WebSocket.send()
WebSocket.send() 方法将需要通过 WebSocket 链接传输至服务器的数据排入队列,并根据所需要传输的 data bytes 的大小来增加 bufferedAmount的值。若数据无法传输(例如数据需要缓存而缓冲区已满)时,套接字会自行关闭。
语法
WebSocket.send("Hello server!");
参数
data-
用于传输至服务器的数据。它必须是以下类型之一:
USVString-
文本字符串。字符串将以 UTF-8 格式添加到缓冲区,并且
bufferedAmount将加上该字符串以 UTF-8 格式编码时的字节数的值。 ArrayBuffer-
您可以使用一有类型的数组对象发送底层二进制数据;其二进制数据内存将被缓存于缓冲区,
bufferedAmount将加上所需字节数的值。 Blob-
Blob类型将队列 blob 中的原始数据以二进制中传输。bufferedAmount将加上原始数据的字节数的值。 ArrayBufferView-
您可以以二进制帧的形式发送任何 JavaScript 类数组对象 ;其二进制数据内容将被队列于缓冲区中。值
bufferedAmount将加上必要字节数的值。
异常
INVALID_STATE_ERR-
当前连接未处于
OPEN状态。 SYNTAX_ERR-
数据是一个包含未配对代理 (unpaired surrogates) 的字符串。
备注: Gecko 在 Gecko 6.0 中对 send() 方法的实现与规范有些不一致;Gecko 返回一个 boolean 来告知当前连接是否依旧处于 OPEN 状态(同时也可以使用该返回值来判定数据是否已经被完全缓存或者传输);这个问题在 Gecko 8.0 中被修正。
而 Gecko 11.0, 支持 ArrayBuffer 类型但不支持 Blob类型。
规范
| Specification |
|---|
| WebSockets Standard # ref-for-dom-websocket-send① |
浏览器兼容性
BCD tables only load in the browser