blob: 495da7a3e8513df46774186c14b7cd5c7b399160 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
---
title: WebSocket.send()
slug: Web/API/WebSocket/send
tags:
- API
- Web API
- WebSocket
- 引用
- 方法
translation_of: Web/API/WebSocket/send
---
<p>{{APIRef("Web Sockets API")}}</p>
<p> <strong><code>WebSocket.send()</code></strong> 方法将需要通过 WebSocket 链接传输至服务器的数据排入队列,并根据所需要传输的data bytes的大小来增加 <code>bufferedAmount</code>的值 。若数据无法传输(例如数据需要缓存而缓冲区已满)时,套接字会自行关闭。</p>
<h2 id="语法">语法</h2>
<pre class="syntaxbox">WebSocket.send("Hello server!");</pre>
<h3 id="参数">参数</h3>
<dl>
<dt><code>data</code></dt>
<dd>用于传输至服务器的数据。它必须是以下类型之一:
<dl>
<dt>{{domxref("USVString")}}</dt>
<dd>文本字符串。字符串将以 UTF-8 格式添加到缓冲区,并且 <code>bufferedAmount</code> 将加上该字符串以 UTF-8 格式编码时的字节数的值。</dd>
<dt>{{domxref("ArrayBuffer")}}</dt>
<dd>您可以使用一有类型的数组对象发送底层二进制数据;其二进制数据内存将被缓存于缓冲区,<code>bufferedAmount</code> 将加上所需字节数的值。</dd>
<dt>{{domxref("Blob")}}</dt>
<dd><code>Blob</code> 类型将队列 blob 中的原始数据以二进制中传输。 <code>bufferedAmount</code> 将加上原始数据的字节数的值。</dd>
<dt>{{domxref("ArrayBufferView")}}</dt>
<dd>您可以以二进制帧的形式发送任何 <a href="/zh-CN/docs/Web/JavaScript/Typed_arrays">JavaScript 类数组对象</a> ;其二进制数据内容将被队列于缓冲区中。值 <code>bufferedAmount</code> 将加上必要字节数的值。</dd>
</dl>
</dd>
</dl>
<h3 id="异常">异常</h3>
<dl>
<dt><code>INVALID_STATE_ERR</code></dt>
<dd>当前连接未处于 <code>OPEN</code> 状态。</dd>
<dt><code>SYNTAX_ERR</code></dt>
<dd>数据是一个包含未配对代理(unpaired surrogates)的字符串。</dd>
</dl>
<div class="note">
<p><strong>Note:</strong> Gecko在{{Gecko("6.0")}}中对 <code>send()</code> 方法的实现与规范有些不一致; Gecko 返回一个<code>boolean</code> 来告知当前连接是否依旧处于<code>OPEN </code>状态 (同时也可以使用该返回值来判定数据是否已经被完全缓存或者传输); 这个问题在 {{Gecko("8.0")}}中被修正.</p>
<p>而 {{Gecko("11.0")}}, 支持 {{jsxref("ArrayBuffer")}} 类型但不支持 {{domxref("Blob")}}类型.</p>
</div>
<h2 id="规范">规范</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">规范</th>
<th scope="col">状态</th>
<th scope="col">注释</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('HTML WHATWG', '#dom-websocket-send', 'WebSocket: send')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td>初始定义</td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{Compat("api.WebSocket.send")}}</p>
|