@doubao-apps/create 0.0.29 → 0.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/template-empty/package.json +2 -2
  2. package/dist/template-empty/references/reference/open-api/01-/345/237/272/347/241/200-/350/264/246/345/217/267-/347/263/273/347/273/237.md +118 -2535
  3. package/dist/template-empty/references/reference/open-api/02-/345/256/232/344/275/215.md +135 -0
  4. package/dist/template-empty/references/reference/open-api/03-/345/255/230/345/202/250.md +409 -0
  5. package/dist/template-empty/references/reference/open-api/04-/350/267/257/347/224/261.md +165 -0
  6. package/dist/template-empty/references/reference/open-api/05-/347/225/214/351/235/242-/344/272/244/344/272/222.md +432 -0
  7. package/dist/template-empty/references/reference/open-api/07-/347/275/221/347/273/234.md +468 -0
  8. package/dist/template-empty/references/reference/open-api/08-/345/252/222/344/275/223.md +346 -0
  9. package/dist/template-empty/references/reference/open-api/09-/345/274/200/346/224/276/350/203/275/345/212/233-/344/270/232/345/212/241/350/203/275/345/212/233.md +929 -0
  10. package/dist/{template-starter/references/reference/open-api/04- → template-empty/references/reference/open-api/10-}/346/225/260/346/215/256/345/210/206/346/236/220.md +1 -1
  11. package/dist/template-empty/references/reference/open-api/README.md +30 -24
  12. package/dist/template-empty/references/reference/open-api.md +464 -0
  13. package/dist/template-starter/package.json +2 -2
  14. package/dist/template-starter/references/reference/open-api/01-/345/237/272/347/241/200-/350/264/246/345/217/267-/347/263/273/347/273/237.md +118 -2535
  15. package/dist/template-starter/references/reference/open-api/02-/345/256/232/344/275/215.md +135 -0
  16. package/dist/template-starter/references/reference/open-api/03-/345/255/230/345/202/250.md +409 -0
  17. package/dist/template-starter/references/reference/open-api/04-/350/267/257/347/224/261.md +165 -0
  18. package/dist/template-starter/references/reference/open-api/05-/347/225/214/351/235/242-/344/272/244/344/272/222.md +432 -0
  19. package/dist/template-starter/references/reference/open-api/07-/347/275/221/347/273/234.md +468 -0
  20. package/dist/template-starter/references/reference/open-api/08-/345/252/222/344/275/223.md +346 -0
  21. package/dist/template-starter/references/reference/open-api/09-/345/274/200/346/224/276/350/203/275/345/212/233-/344/270/232/345/212/241/350/203/275/345/212/233.md +929 -0
  22. package/dist/{template-empty/references/reference/open-api/04- → template-starter/references/reference/open-api/10-}/346/225/260/346/215/256/345/210/206/346/236/220.md +1 -1
  23. package/dist/template-starter/references/reference/open-api/README.md +30 -24
  24. package/dist/template-starter/references/reference/open-api.md +464 -0
  25. package/package.json +1 -1
  26. package/dist/template-empty/references/reference/open-api/02-/350/267/257/347/224/261.md +0 -63
  27. package/dist/template-starter/references/reference/open-api/02-/350/267/257/347/224/261.md +0 -63
  28. /package/dist/template-empty/references/reference/open-api/{03- → 06-}/347/225/214/351/235/242-/350/276/223/345/205/245.md" +0 -0
  29. /package/dist/template-empty/references/reference/open-api/{05- → 11-}/350/256/276/345/244/207-/350/223/235/347/211/231.md" +0 -0
  30. /package/dist/template-empty/references/reference/open-api/{06- → 12-}/350/256/276/345/244/207-wi-fi.md" +0 -0
  31. /package/dist/template-empty/references/reference/open-api/{07- → 13-}/350/256/276/345/244/207-/345/212/240/351/200/237/345/272/246/350/256/241.md" +0 -0
  32. /package/dist/template-empty/references/reference/open-api/{08- → 14-}/350/256/276/345/244/207-ibeacon.md" +0 -0
  33. /package/dist/template-empty/references/reference/open-api/{09- → 15-}/350/256/276/345/244/207-/347/275/227/347/233/230.md" +0 -0
  34. /package/dist/template-empty/references/reference/open-api/{10- → 16-}/350/256/276/345/244/207-/350/256/276/345/244/207/346/226/271/345/220/221.md" +0 -0
  35. /package/dist/template-empty/references/reference/open-api/{11- → 17-}/350/256/276/345/244/207-/351/231/200/350/236/272/344/273/252.md" +0 -0
  36. /package/dist/template-empty/references/reference/open-api/{12-ui- → 18-ui-}/350/276/223/345/205/245.md" +0 -0
  37. /package/dist/template-empty/references/reference/open-api/{13- → 19-}/350/256/276/345/244/207-/347/275/221/347/273/234.md" +0 -0
  38. /package/dist/template-empty/references/reference/open-api/{14- → 20-}/350/256/276/345/244/207-/347/237/255/344/277/241.md" +0 -0
  39. /package/dist/template-empty/references/reference/open-api/{15- → 21-}/350/256/276/345/244/207-/346/227/240/351/232/234/347/242/215.md" +0 -0
  40. /package/dist/template-empty/references/reference/open-api/{16- → 22-}/350/256/276/345/244/207-/347/224/265/346/261/240.md" +0 -0
  41. /package/dist/template-empty/references/reference/open-api/{17- → 23-}/350/256/276/345/244/207-/346/227/245/345/216/206.md" +0 -0
  42. /package/dist/template-empty/references/reference/open-api/{18- → 24-}/350/256/276/345/244/207-/345/211/252/350/264/264/346/235/277.md" +0 -0
  43. /package/dist/template-empty/references/reference/open-api/{19- → 25-}/350/256/276/345/244/207-/350/201/224/347/263/273/344/272/272.md" +0 -0
  44. /package/dist/template-empty/references/reference/open-api/{20- → 26-}/350/256/276/345/244/207-/345/212/240/345/257/206.md" +0 -0
  45. /package/dist/template-empty/references/reference/open-api/{21- → 27-}/350/256/276/345/244/207-/347/224/265/350/257/235.md" +0 -0
  46. /package/dist/template-empty/references/reference/open-api/{22- → 28-}/350/256/276/345/244/207-/346/211/253/347/240/201.md" +0 -0
  47. /package/dist/template-empty/references/reference/open-api/{23- → 29-}/350/256/276/345/244/207-/345/261/217/345/271/225.md" +0 -0
  48. /package/dist/template-empty/references/reference/open-api/{24- → 30-}/350/256/276/345/244/207-/351/234/207/345/212/250.md" +0 -0
  49. /package/dist/template-starter/references/reference/open-api/{03- → 06-}/347/225/214/351/235/242-/350/276/223/345/205/245.md" +0 -0
  50. /package/dist/template-starter/references/reference/open-api/{05- → 11-}/350/256/276/345/244/207-/350/223/235/347/211/231.md" +0 -0
  51. /package/dist/template-starter/references/reference/open-api/{06- → 12-}/350/256/276/345/244/207-wi-fi.md" +0 -0
  52. /package/dist/template-starter/references/reference/open-api/{07- → 13-}/350/256/276/345/244/207-/345/212/240/351/200/237/345/272/246/350/256/241.md" +0 -0
  53. /package/dist/template-starter/references/reference/open-api/{08- → 14-}/350/256/276/345/244/207-ibeacon.md" +0 -0
  54. /package/dist/template-starter/references/reference/open-api/{09- → 15-}/350/256/276/345/244/207-/347/275/227/347/233/230.md" +0 -0
  55. /package/dist/template-starter/references/reference/open-api/{10- → 16-}/350/256/276/345/244/207-/350/256/276/345/244/207/346/226/271/345/220/221.md" +0 -0
  56. /package/dist/template-starter/references/reference/open-api/{11- → 17-}/350/256/276/345/244/207-/351/231/200/350/236/272/344/273/252.md" +0 -0
  57. /package/dist/template-starter/references/reference/open-api/{12-ui- → 18-ui-}/350/276/223/345/205/245.md" +0 -0
  58. /package/dist/template-starter/references/reference/open-api/{13- → 19-}/350/256/276/345/244/207-/347/275/221/347/273/234.md" +0 -0
  59. /package/dist/template-starter/references/reference/open-api/{14- → 20-}/350/256/276/345/244/207-/347/237/255/344/277/241.md" +0 -0
  60. /package/dist/template-starter/references/reference/open-api/{15- → 21-}/350/256/276/345/244/207-/346/227/240/351/232/234/347/242/215.md" +0 -0
  61. /package/dist/template-starter/references/reference/open-api/{16- → 22-}/350/256/276/345/244/207-/347/224/265/346/261/240.md" +0 -0
  62. /package/dist/template-starter/references/reference/open-api/{17- → 23-}/350/256/276/345/244/207-/346/227/245/345/216/206.md" +0 -0
  63. /package/dist/template-starter/references/reference/open-api/{18- → 24-}/350/256/276/345/244/207-/345/211/252/350/264/264/346/235/277.md" +0 -0
  64. /package/dist/template-starter/references/reference/open-api/{19- → 25-}/350/256/276/345/244/207-/350/201/224/347/263/273/344/272/272.md" +0 -0
  65. /package/dist/template-starter/references/reference/open-api/{20- → 26-}/350/256/276/345/244/207-/345/212/240/345/257/206.md" +0 -0
  66. /package/dist/template-starter/references/reference/open-api/{21- → 27-}/350/256/276/345/244/207-/347/224/265/350/257/235.md" +0 -0
  67. /package/dist/template-starter/references/reference/open-api/{22- → 28-}/350/256/276/345/244/207-/346/211/253/347/240/201.md" +0 -0
  68. /package/dist/template-starter/references/reference/open-api/{23- → 29-}/350/256/276/345/244/207-/345/261/217/345/271/225.md" +0 -0
  69. /package/dist/template-starter/references/reference/open-api/{24- → 30-}/350/256/276/345/244/207-/351/234/207/345/212/250.md" +0 -0
@@ -0,0 +1,468 @@
1
+ # Open API: 网络
2
+
3
+ 网络请求与 WebSocket。
4
+
5
+ [返回目录](./README.md) | [返回速查](../open-api.md)
6
+
7
+ ## 速查
8
+
9
+ | API | 说明 |
10
+ | --- | --- |
11
+ | [request](#request) | 发起网络请求。<br><br>返回 statusCode、header 和 data。 |
12
+ | [connectSocket](#connectsocket) | 创建一个 WebSocket 连接,并返回可操作该连接的 SocketTask。<br><br>- 返回 SocketTask 不代表连接已经成功,连接成功以 onOpen 为准。 - send 必须接收对象参数,并把要发送的内容放在 data 字段中。 - 如果 protocols 非空,需要服务端支持并返回匹配的子协议。 - 多次调用会创建多条连接,旧连接不会自动关闭;不再使用时应主动调用 close。 - 连接失败、发送失败或关闭失败会通过 SocketTask.onError 通知。 |
13
+
14
+ ## API 详情
15
+
16
+ <a id="request"></a>
17
+ ### request()
18
+
19
+ > **request**(`params`): `Promise`\<[`RequestResponse`](#requestresponse)\>
20
+
21
+ 发起网络请求。
22
+
23
+ #### Parameters
24
+
25
+ • **params**: [`RequestParams`](#requestparams)
26
+
27
+ 请求参数,字段见 [RequestParams](#requestparams)。
28
+
29
+ #### Returns
30
+
31
+ `Promise`\<[`RequestResponse`](#requestresponse)\>
32
+
33
+ 返回一个 Promise,解析为 [RequestResponse](#requestresponse)。
34
+
35
+ #### Remarks
36
+
37
+ 返回 statusCode、header 和 data。
38
+
39
+ #### Example
40
+
41
+ ```typescript
42
+ import { request } from '@doubao-apps/framework/api';
43
+
44
+ const result = await request({
45
+ url: 'https://postman-echo.com/post',
46
+ method: 'POST',
47
+ dataType: 'json',
48
+ header: { 'content-type': 'application/json' },
49
+ data: { hello: 'world' }
50
+ });
51
+
52
+ console.log(result.statusCode, result.data);
53
+ ```
54
+
55
+ <a id="connectsocket"></a>
56
+ ### connectSocket()
57
+
58
+ > **connectSocket**(`params`): [`SocketTask`](#sockettask)
59
+
60
+ 创建一个 WebSocket 连接,并返回可操作该连接的 [SocketTask](#sockettask)。
61
+
62
+ 该 API 会同步返回 `SocketTask`,但连接创建本身是异步过程。调用方应先在返回的
63
+ `SocketTask` 上注册事件回调,再等待 `onOpen` 表示连接可用。后续发送消息使用
64
+ `SocketTask.send`,关闭连接使用 `SocketTask.close`。
65
+
66
+ #### Parameters
67
+
68
+ • **params**: [`ConnectSocketParams`](#connectsocketparams)
69
+
70
+ 创建连接所需参数,字段见 [ConnectSocketParams](#connectsocketparams)。
71
+
72
+ #### Returns
73
+
74
+ [`SocketTask`](#sockettask)
75
+
76
+ 当前 WebSocket 连接对应的 [SocketTask](#sockettask)。
77
+
78
+ #### Remarks
79
+
80
+ - 返回 `SocketTask` 不代表连接已经成功,连接成功以 `onOpen` 为准。
81
+ - `send` 必须接收对象参数,并把要发送的内容放在 `data` 字段中。
82
+ - 如果 `protocols` 非空,需要服务端支持并返回匹配的子协议。
83
+ - 多次调用会创建多条连接,旧连接不会自动关闭;不再使用时应主动调用 `close`。
84
+ - 连接失败、发送失败或关闭失败会通过 `SocketTask.onError` 通知。
85
+
86
+ #### Example
87
+
88
+ ```typescript
89
+ import { connectSocket } from '@doubao-apps/framework/api';
90
+
91
+ const socketTask = connectSocket({
92
+ url: 'wss://example.com/socket',
93
+ header: { authorization: 'Bearer token' },
94
+ protocols: ['chat.v1']
95
+ });
96
+
97
+ socketTask.onOpen(() => {
98
+ socketTask.send({ data: 'hello' });
99
+ });
100
+
101
+ socketTask.onMessage((event) => {
102
+ console.log(event.data);
103
+ });
104
+
105
+ socketTask.onClose((event) => {
106
+ console.log(event.code, event.reason);
107
+ });
108
+
109
+ socketTask.onError((event) => {
110
+ console.error(event.errMsg);
111
+ });
112
+ ```
113
+
114
+ ## 相关类型
115
+
116
+ <a id="requestparams"></a>
117
+ ### RequestParams
118
+
119
+ 网络请求参数。
120
+
121
+ #### Properties
122
+
123
+ ##### data?
124
+
125
+ > `optional` **data**: `string` \| `Record`\<`string`, `any`\> \| `ArrayBuffer`
126
+
127
+ 请求体数据。
128
+
129
+ 传给服务器的数据最终会是 `String` 或 `ArrayBuffer`:
130
+ - 若 `data` 是 `string` 或 `ArrayBuffer`,直接使用;
131
+ - 若 `header['content-type']` 是 `application/x-www-form-urlencoded`,会被编码为 query string,例如:`encodeURIComponent(k)=encodeURIComponent(v)`;
132
+ - 若 `header['content-type']` 是 `application/json`,会执行 JSON 序列化;
133
+ - 若 `data` 是普通对象且未命中上述类型,也会执行 JSON 序列化;
134
+ - 其他类型会调用 `toString()`
135
+
136
+ ##### dataType?
137
+
138
+ > `optional` **dataType**: `"string"` \| `"json"`
139
+
140
+ 期望返回的数据格式。
141
+ - `json`: 尝试按 JSON 解析;
142
+ - `string`: 按字符串返回。
143
+
144
+ ###### Default
145
+
146
+ ```ts
147
+ "json"
148
+ ```
149
+
150
+ ##### header?
151
+
152
+ > `optional` **header**: `Record`\<`string`, `string`\>
153
+
154
+ 请求 Header。
155
+
156
+ ###### Default
157
+
158
+ ```ts
159
+ {"content-type": "application/json"}
160
+ ```
161
+
162
+ ##### method?
163
+
164
+ > `optional` **method**: [`RequestMethod`](#requestmethod)
165
+
166
+ 请求方法。
167
+
168
+ ###### Default
169
+
170
+ ```ts
171
+ "GET"
172
+ ```
173
+
174
+ ##### url
175
+
176
+ > **url**: `string`
177
+
178
+ 请求地址,需为完整的 **HTTPS** URL。
179
+
180
+ <a id="requestresponse"></a>
181
+ ### RequestResponse
182
+
183
+ 网络请求返回结果。
184
+
185
+ #### Properties
186
+
187
+ ##### data?
188
+
189
+ > `optional` **data**: `string` \| `Record`\<`string`, `any`\> \| `ArrayBuffer`
190
+
191
+ 响应数据,类型由 `dataType` 决定。
192
+
193
+ ##### header
194
+
195
+ > **header**: `Record`\<`string`, `string`\>
196
+
197
+ HTTP 响应头。
198
+
199
+ ##### statusCode
200
+
201
+ > **statusCode**: `number`
202
+
203
+ HTTP 状态码。
204
+
205
+ <a id="requestmethod"></a>
206
+ ### RequestMethod
207
+
208
+ > **RequestMethod**: `"GET"` \| `"POST"` \| `"PUT"` \| `"DELETE"` \| `"HEAD"` \| `"OPTIONS"` \| `"TRACE"` \| `"CONNECT"`
209
+
210
+ <a id="connectsocketparams"></a>
211
+ ### ConnectSocketParams
212
+
213
+ 创建 WebSocket 连接的参数。
214
+
215
+ `connectSocket` 会把这些参数透传给宿主侧创建连接。连接创建请求发出后,
216
+ 调用方会立即拿到一个 [SocketTask](#sockettask),后续连接成功、失败、收到消息和关闭状态
217
+ 都通过 `SocketTask` 上注册的事件回调通知。
218
+
219
+ #### Remarks
220
+
221
+ - `url` 应填写完整的 WebSocket 地址。线上环境通常要求使用 `wss://` 协议,并由宿主侧按当前应用配置校验合法域名和证书。
222
+ - `header` 用于补充握手请求头,`referer` 等由宿主管控的字段不会被业务代码覆盖。
223
+ - `protocols` 非空时,服务端需要在握手响应中选择并返回匹配的子协议,否则连接可能失败。
224
+ - 同一个页面多次调用会创建多个独立连接,已创建的旧连接不会因为新连接自动关闭。
225
+
226
+ #### Properties
227
+
228
+ ##### header?
229
+
230
+ > `optional` **header**: `Record`\<`string`, `string`\>
231
+
232
+ WebSocket 握手阶段携带的 HTTP Header。
233
+
234
+ 适合放置业务自定义 Header,例如鉴权 token、trace id、客户端能力标识等。
235
+ `referer` 由宿主侧统一生成和管理,不应依赖该字段被业务传入值覆盖。
236
+
237
+ ##### protocols?
238
+
239
+ > `optional` **protocols**: `string`[]
240
+
241
+ WebSocket 子协议数组。
242
+
243
+ 会作为握手请求中的 `Sec-WebSocket-Protocol` 候选值传给服务端。
244
+ 如果传入非空数组,服务端需要选择其中一个协议并在握手响应中返回;
245
+ 服务端不支持或不返回匹配协议时,连接可能被宿主判定为创建失败。
246
+
247
+ ##### url
248
+
249
+ > **url**: `string`
250
+
251
+ WebSocket 连接地址。
252
+
253
+ 需要包含协议、域名、路径和可选 query,例如 `wss://example.com/socket?room=1`。
254
+ 如果地址为空或不是字符串,本 API 会返回 `readyState` 为 `undefined` 的 [SocketTask](#sockettask),
255
+ 并异步触发 `onError`。
256
+
257
+ <a id="sockettask"></a>
258
+ <a id="sockettaskcloseparams"></a>
259
+ <a id="send"></a>
260
+ <a id="sockettasksendparams"></a>
261
+ <a id="close-1"></a>
262
+ ### SocketTask
263
+
264
+ 通过 [connectSocket](#connectsocket) 获取的 WebSocket 任务实例。
265
+
266
+ `SocketTask` 表示单条 WebSocket 连接的控制对象。它负责发送数据、关闭连接,
267
+ 并通过事件回调接收连接状态、服务端消息和错误通知。`connectSocket` 返回时连接
268
+ 仍可能处于创建中,调用方应先注册 `onOpen`、`onError`、`onClose`、`onMessage`
269
+ 等回调,再根据 `onOpen` 事件发送业务数据。
270
+
271
+ #### Methods
272
+
273
+ ##### close()
274
+
275
+ > **close**(`params`?): `void`
276
+
277
+ 关闭 WebSocket 连接。
278
+
279
+ 调用后会尝试向宿主侧发起关闭动作,并把 `readyState` 置为 `SocketTask.CLOSING`。
280
+ 最终关闭完成时触发 `onClose`;关闭动作失败时触发 `onError`。
281
+
282
+ ###### Parameters
283
+
284
+ • **params?**: [`SocketTaskCloseParams`](#sockettaskcloseparams)
285
+
286
+ ###### Returns
287
+
288
+ `void`
289
+
290
+ ##### onClose()
291
+
292
+ > **onClose**(`callback`): `void`
293
+
294
+ 监听 WebSocket 与服务器连接断开的事件。
295
+
296
+ 主动关闭、服务端关闭、宿主侧回收连接都可能触发该回调。
297
+ 回调触发后当前任务会从内部连接表移除。
298
+
299
+ ###### Parameters
300
+
301
+ • **callback**
302
+
303
+ ###### Returns
304
+
305
+ `void`
306
+
307
+ ##### onError()
308
+
309
+ > **onError**(`callback`): `void`
310
+
311
+ 监听 WebSocket 发生错误的事件。
312
+
313
+ 连接创建、发送、关闭或底层通道出现异常时触发。
314
+ 该回调只表示发生错误,不等同于连接一定已经关闭;是否关闭应结合 `readyState`
315
+ 或后续 `onClose` 事件判断。
316
+
317
+ ###### Parameters
318
+
319
+ • **callback**
320
+
321
+ ###### Returns
322
+
323
+ `void`
324
+
325
+ ##### onMessage()
326
+
327
+ > **onMessage**(`callback`): `void`
328
+
329
+ 监听 WebSocket 接收到服务器发送信息的事件。
330
+
331
+ 服务端每下发一条消息都会触发一次回调。消息内容通过 `event.data` 返回,
332
+ 类型可能是 `string` 或 `ArrayBuffer`。
333
+
334
+ ###### Parameters
335
+
336
+ • **callback**
337
+
338
+ ###### Returns
339
+
340
+ `void`
341
+
342
+ ##### onOpen()
343
+
344
+ > **onOpen**(`callback`): `void`
345
+
346
+ 监听 WebSocket 连接服务器成功的事件。
347
+
348
+ 可以注册多个回调。连接成功后触发回调,并携带握手响应 Header、协议类型等信息。
349
+ 通常应在该回调中或之后调用 [SocketTask.send](#send)。
350
+
351
+ ###### Parameters
352
+
353
+ • **callback**
354
+
355
+ ###### Returns
356
+
357
+ `void`
358
+
359
+ ##### send()
360
+
361
+ > **send**(`params`): `void`
362
+
363
+ 通过 WebSocket 连接发送数据。
364
+
365
+ 该方法只发起发送动作,不返回发送结果。建议在 `readyState === SocketTask.OPEN`
366
+ 或收到 `onOpen` 事件后调用;如果连接未就绪、数据编码失败或宿主侧发送失败,
367
+ 会触发 `onError`。
368
+
369
+ ###### Parameters
370
+
371
+ • **params**: [`SocketTaskSendParams`](#sockettasksendparams)
372
+
373
+ ###### Returns
374
+
375
+ `void`
376
+
377
+ #### Properties
378
+
379
+ ##### CLOSED
380
+
381
+ > `readonly` **CLOSED**: `3`
382
+
383
+ 表示 Socket 连接已关闭。
384
+
385
+ 进入该状态后,该任务不会再收到新的消息,也不应继续调用 `send`。
386
+
387
+ ##### CLOSING
388
+
389
+ > `readonly` **CLOSING**: `2`
390
+
391
+ 表示 Socket 连接关闭中。
392
+
393
+ 调用 [SocketTask.close](#close-1) 后、本地等待宿主侧完成关闭流程时通常处于该状态。
394
+
395
+ ##### CONNECTING
396
+
397
+ > `readonly` **CONNECTING**: `0`
398
+
399
+ 表示 Socket 正在连接。
400
+
401
+ `connectSocket` 刚返回且宿主尚未完成握手时通常处于该状态。
402
+
403
+ ##### OPEN
404
+
405
+ > `readonly` **OPEN**: `1`
406
+
407
+ 表示 Socket 连接已经打开。
408
+
409
+ 进入该状态后可以调用 [SocketTask.send](#send) 发送数据。
410
+
411
+ ##### readyState
412
+
413
+ > `readonly` **readyState**: `undefined` \| `number`
414
+
415
+ 当前 Socket 连接状态 code。
416
+
417
+ 可与 `CONNECTING`、`OPEN`、`CLOSING`、`CLOSED` 常量比较。
418
+ 如果因为参数错误等原因导致连接请求没有被宿主成功创建,则为 `undefined`。
419
+
420
+ <a id="sockettaskcloseparams"></a>
421
+ ### SocketTaskCloseParams
422
+
423
+ [SocketTask.close](#close-1) 的参数。
424
+
425
+ `close` 用于主动关闭当前 WebSocket 连接。调用后 `readyState` 会先进入
426
+ `SocketTask.CLOSING`,最终关闭结果通过 `onClose` 或 `onError` 回调通知。
427
+
428
+ #### Properties
429
+
430
+ ##### code?
431
+
432
+ > `optional` **code**: `number`
433
+
434
+ 关闭连接状态码。
435
+
436
+ 不传时由宿主侧按正常关闭处理,通常等价于 `1000`。
437
+ 常见值包括:
438
+ - `1000`: 正常关闭;
439
+ - `1001`: 因页面进入后台、宿主回收连接等原因关闭。
440
+
441
+ ##### reason?
442
+
443
+ > `optional` **reason**: `string`
444
+
445
+ 连接被关闭的原因。
446
+
447
+ 该字段会随关闭帧传递给服务端,是否被服务端记录或回传取决于服务端实现。
448
+
449
+ <a id="sockettasksendparams"></a>
450
+ ### SocketTaskSendParams
451
+
452
+ [SocketTask.send](#send) 的参数。
453
+
454
+ `send` 只负责向已打开的 WebSocket 连接写入一条消息,不返回 Promise。
455
+ 发送失败、连接未就绪或底层通道异常时,会通过同一个 `SocketTask` 的 `onError` 回调通知。
456
+
457
+ #### Properties
458
+
459
+ ##### data
460
+
461
+ > **data**: `string` \| `ArrayBuffer`
462
+
463
+ 需要发送给服务端的数据。
464
+
465
+ - 传入 `string` 时按文本消息发送;
466
+ - 传入 `ArrayBuffer` 时按二进制消息发送,内部会编码后交给宿主侧处理。
467
+
468
+ 建议只在 `onOpen` 回调触发后调用 `send`,此时 `readyState` 通常为 `SocketTask.OPEN`。