js-apis-webSocket.md 20.0 KB
Newer Older
C
clevercong 已提交
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
# WebSocket连接<a name="ZH-CN_TOPIC_0000001216545901"></a>

-   [导入模块](#s56d19203690d4782bfc74069abb6bd71)
-   [权限列表](#section11257113618419)
-   [完整示例](#section20761171275912)
-   [webSocket.createWebSocket](#section375081875219)
-   [WebSocket](#section16411174314593)
    -   [connect](#section1377525513113)
    -   [connect](#section18952991528)
    -   [connect](#section10573126422)
    -   [send](#section156451414213)
    -   [send](#section137609541324)
    -   [close](#section202411451433)
    -   [close](#section10491513437)
    -   [close](#section118451219536)
    -   [on\('open'\)](#section923017271834)
    -   [off\('open'\)](#section207051331730)
    -   [on\('message'\)](#section1066819418488)
    -   [off\('message'\)](#section1467019413484)
    -   [on\('close'\)](#section169378107484)
    -   [off\('close'\)](#section993911074812)
    -   [on\('error'\)](#section2997161484815)
    -   [off\('error'\)](#section13999114164815)

-   [WebSocketRequestOptions](#section11251233123910)
-   [WebSocketCloseOptions](#section12262183471518)
-   [close错误码说明](#section1635681416477)

>![](public_sys-resources/icon-note.gif) **说明:** 
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
C
clevercong 已提交
31 32
>
>当前暂时不支持WebSocket,预计在MR版本支持。
C
clevercong 已提交
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

使用WebSocket建立服务器与客户端的双向连接,需要先通过[createWebSocket](#section375081875219)方法创建[WebSocket](#section16411174314593)对象,然后通过[connect](WebSocket连接.md)方法连接到服务器。当连接成功后,客户端会收到[open](#section923017271834)事件的回调,之后客户端就可以通过[send](#section156451414213)方法与服务器进行通信。当服务器发信息给客户端时,客户端会收到[message](#section1066819418488)事件的回调。当客户端不要此连接时,可以通过调用[close](#section202411451433)方法主动断开连接,之后客户端会收到[close](#section169378107484)事件的回调。

若在上述任一过程中发生错误,客户端会收到[error](#section2997161484815)事件的回调。


## 导入模块<a name="s56d19203690d4782bfc74069abb6bd71"></a>

```
import webSocket from '@ohos.net.webSocket';
```

## 权限列表<a name="section11257113618419"></a>

需要ohos.permission.INTERNET权限。

## 完整示例<a name="section20761171275912"></a>

```
import webSocket from '@ohos.net.webSocket';

var defaultIpAddress = "ws://";
let ws = webSocket.createWebSocket();
ws.on('open', (err, value) => {
    console.log("on open, status:" + value.status + ", message:" + value.message);
    // 当收到on('open')事件时,可以通过send()方法与服务器进行通信
    ws.send("Hello, server!", (err, value) => {
        if (!err) {
            console.log("send success");
        } else {
            console.log("send fail, err:" + JSON.stringify(err));
        }
    });
});
ws.on('message', (err, value) => {
    console.log("on message, message:" + value);
    // 当收到服务器的`bye`消息时(此消息字段仅为示意,具体字段需要与服务器协商),主动断开连接
    if (value === 'bye') {
        ws.close((err, value) => {
            if (!err) {
                console.log("close success");
            } else {
                console.log("close fail, err is " + JSON.stringify(err));
            }
        });
    }
});
ws.on('close', (err, value) => {
    console.log("on close, code is " + value.code + ", reason is " + value.reason);
});
ws.on('error', (err) => {
    console.log("on error, error:" + JSON.stringify(err));
});
ws.connect(defaultIpAddress, (err, value) => {
    if (!err) {
        console.log("connect success");
    } else {
        console.log("connect fail, err:" + JSON.stringify(err));
    }
});
```

## webSocket.createWebSocket<a name="section375081875219"></a>

createWebSocket\(\): WebSocket

创建一个WebSocket,里面包括建立连接、关闭连接、发送数据和订阅/取消订阅WebSocket连接的打开事件、接收到服务器消息事件、关闭事件和错误事件。

C
clevercong 已提交
101
**返回值:**
C
clevercong 已提交
102

C
clevercong 已提交
103 104 105
| 类型                                | 说明                                                         |
| :---------------------------------- | :----------------------------------------------------------- |
| [WebSocket](#section16411174314593) | 返回一个WebSocket对象,里面包括connect、send、close、on和off方法。 |
C
clevercong 已提交
106

C
clevercong 已提交
107
**示例:**
C
clevercong 已提交
108

C
clevercong 已提交
109 110 111
```
let ws = webSocket.createWebSocket();
```
C
clevercong 已提交
112 113 114 115 116 117 118 119 120 121 122 123


## WebSocket<a name="section16411174314593"></a>

在调用WebSocket的方法前,需要先通过[webSocket.createWebSocket](#section375081875219)创建一个WebSocket。

### connect<a name="section1377525513113"></a>

connect\(url: string, callback: AsyncCallback<boolean\>\): void

根据URL地址,建立一个WebSocket连接,使用callback方式作为异步方法。

C
clevercong 已提交
124
**参数:**
C
clevercong 已提交
125

C
clevercong 已提交
126 127 128 129
| 参数名   | 类型                     | 必填 | 说明                         |
| -------- | ------------------------ | ---- | ---------------------------- |
| url      | string                   | 是   | 建立WebSocket连接的URL地址。 |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。                   |
C
clevercong 已提交
130 131


C
clevercong 已提交
132
**示例:**
C
clevercong 已提交
133

C
clevercong 已提交
134 135 136 137 138 139 140 141 142 143 144
```
let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, (err, value) => {
	if (!err) {
		console.log("connect success");
	} else {
		console.log("connect fail, err:" + JSON.stringify(err))
	}
});
```
C
clevercong 已提交
145 146 147 148 149 150 151 152


### connect<a name="section18952991528"></a>

connect\(url: string, options: WebSocketRequestOptions, callback: AsyncCallback<boolean\>\): void

根据URL地址和header,建立一个WebSocket连接,使用callback方式作为异步方法。

C
clevercong 已提交
153
**参数:**
C
clevercong 已提交
154

C
clevercong 已提交
155 156 157 158 159
| 参数名   | 类型                     | 必填 | 说明                                                    |
| -------- | ------------------------ | ---- | ------------------------------------------------------- |
| url      | string                   | 是   | 建立WebSocket连接的URL地址。                            |
| options  | WebSocketRequestOptions  | 是   | 参考[WebSocketRequestOptions](#section11251233123910)。 |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。                                              |
C
clevercong 已提交
160 161


C
clevercong 已提交
162
**示例:**
C
clevercong 已提交
163

C
clevercong 已提交
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
```
let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, {
	header: {
		"key": "value",
		"key2": "value2"
	}
}, (err, value) => {
	if (!err) {
		console.log("connect success");
	} else {
		console.log("connect fail, err:" + JSON.stringify(err))
	}
});
```
C
clevercong 已提交
180 181 182 183 184 185 186 187


### connect<a name="section10573126422"></a>

connect\(url: string, options?: WebSocketRequestOptions\): Promise<boolean\>

根据URL地址和header,建立一个WebSocket连接,使用Promise方式作为异步方法。

C
clevercong 已提交
188
**参数:**
C
clevercong 已提交
189

C
clevercong 已提交
190 191 192 193
| 参数名  | 类型                    | 必填 | 说明                                                    |
| ------- | ----------------------- | ---- | ------------------------------------------------------- |
| url     | string                  | 是   | 建立WebSocket连接的URL地址。                            |
| options | WebSocketRequestOptions | 否   | 参考[WebSocketRequestOptions](#section11251233123910)。 |
C
clevercong 已提交
194

C
clevercong 已提交
195
**返回值:**
C
clevercong 已提交
196

C
clevercong 已提交
197 198 199
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回建立连接的结果。 |
C
clevercong 已提交
200

C
clevercong 已提交
201
**示例:**
C
clevercong 已提交
202

C
clevercong 已提交
203 204 205 206 207 208 209 210 211 212
```
let ws = webSocket.createWebSocket();
let url = "ws://"
let promise = ws.connect(url);
promise.then((value) => {
	console.log("connect success")
}).catch((err) => {
	console.log("connect fail, error:" + JSON.stringify(err))
});
```
C
clevercong 已提交
213 214 215 216 217 218 219 220


### send<a name="section156451414213"></a>

send\(data: string | ArrayBuffer, callback: AsyncCallback<boolean\>\): void

通过WebSocket连接发送数据,使用callback方式作为异步方法。

C
clevercong 已提交
221
**参数:**
C
clevercong 已提交
222

C
clevercong 已提交
223 224 225 226
| 参数名   | 类型                     | 必填 | 说明         |
| -------- | ------------------------ | ---- | ------------ |
| data     | string \| ArrayBuffer <sup>8+</sup> | 是   | 发送的数据。 |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。   |
C
clevercong 已提交
227

C
clevercong 已提交
228
**示例:**
C
clevercong 已提交
229

C
clevercong 已提交
230 231 232 233 234 235 236 237 238 239 240 241 242
```
let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, (err, value) => {
	ws.send("Hello, server!", (err, value) => {
		if (!err) {
			console.log("send success");
		} else {
			console.log("send fail, err:" + JSON.stringify(err))
		}
	});
});
```
C
clevercong 已提交
243 244 245 246 247 248 249 250


### send<a name="section137609541324"></a>

send\(data: string | ArrayBuffer\): Promise<boolean\>

通过WebSocket连接发送数据,使用Promise方式作为异步方法。

C
clevercong 已提交
251
**参数:**
C
clevercong 已提交
252

C
clevercong 已提交
253 254 255
| 参数名 | 类型   | 必填 | 说明         |
| ------ | ------ | ---- | ------------ |
| data     | string \| ArrayBuffer <sup>8+</sup> | 是   | 发送的数据。 |
C
clevercong 已提交
256

C
clevercong 已提交
257
**返回值:**
C
clevercong 已提交
258

C
clevercong 已提交
259 260 261
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回发送数据的结果。 |
C
clevercong 已提交
262

C
clevercong 已提交
263
**示例:**
C
clevercong 已提交
264

C
clevercong 已提交
265 266 267 268 269 270 271 272 273 274 275 276
```
let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, (err, value) => {
	let promise = ws.send("Hello, server!");
	promise.then((value) => {
		console.log("send success")
	}).catch((err) => {
		console.log("send fail, error:" + JSON.stringify(err))
	});
});
```
C
clevercong 已提交
277 278 279 280 281 282 283 284


### close<a name="section202411451433"></a>

close\(callback: AsyncCallback<boolean\>\): void

关闭WebSocket连接,使用callback方式作为异步方法。

C
clevercong 已提交
285
**参数:**
C
clevercong 已提交
286

C
clevercong 已提交
287 288 289
| 参数名   | 类型                     | 必填 | 说明       |
| -------- | ------------------------ | ---- | ---------- |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。 |
C
clevercong 已提交
290

C
clevercong 已提交
291
**示例:**
C
clevercong 已提交
292

C
clevercong 已提交
293 294 295 296 297 298 299 300 301 302 303
```
let ws = webSocket.createWebSocket();
let url = "ws://"
ws.close((err, value) => {
	if (!err) {
		console.log("close success")
	} else {
		console.log("close fail, err is " + JSON.stringify(err))
	}
});
```
C
clevercong 已提交
304 305 306 307 308 309 310 311


### close<a name="section10491513437"></a>

close\(options: WebSocketCloseOptions, callback: AsyncCallback<boolean\>\): void

根据可选参数code和reason,关闭WebSocket连接,使用callback方式作为异步方法。

C
clevercong 已提交
312
**参数:**
C
clevercong 已提交
313

C
clevercong 已提交
314 315 316 317
| 参数名   | 类型                     | 必填 | 说明                                                  |
| -------- | ------------------------ | ---- | ----------------------------------------------------- |
| options  | WebSocketCloseOptions    | 是   | 参考[WebSocketCloseOptions](#section12262183471518)。 |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。                                            |
C
clevercong 已提交
318

C
clevercong 已提交
319
**示例:**
C
clevercong 已提交
320

C
clevercong 已提交
321 322 323 324 325 326 327 328 329 330 331 332 333 334
```
let ws = webSocket.createWebSocket();
let url = "ws://"
ws.close({
	code: 1000,
	reason: "your reason"
}, (err, value) => {
	if (!err) {
		console.log("close success")
	} else {
		console.log("close fail, err is " + JSON.stringify(err))
	}
});
```
C
clevercong 已提交
335 336 337 338 339 340 341 342


### close<a name="section118451219536"></a>

close\(options?: WebSocketCloseOptions\): Promise<boolean\>

根据可选参数code和reason,关闭WebSocket连接,使用Promise方式作为异步方法。

C
clevercong 已提交
343
**参数:**
C
clevercong 已提交
344

C
clevercong 已提交
345 346 347
| 参数名  | 类型                  | 必填 | 说明                                                  |
| ------- | --------------------- | ---- | ----------------------------------------------------- |
| options | WebSocketCloseOptions | 否   | 参考[WebSocketCloseOptions](#section12262183471518)。 |
C
clevercong 已提交
348

C
clevercong 已提交
349
**返回值:**
C
clevercong 已提交
350

C
clevercong 已提交
351 352 353
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回关闭连接的结果。 |
C
clevercong 已提交
354

C
clevercong 已提交
355
**示例:**
C
clevercong 已提交
356

C
clevercong 已提交
357 358 359 360 361 362 363 364 365 366 367 368 369
```
let ws = webSocket.createWebSocket();
let url = "ws://"
let promise = ws.close({
	code: 1000,
	reason: "your reason"
});
promise.then((value) => {
	console.log("close success")
}).catch((err) => {
	console.log("close fail, err is " + JSON.stringify(err))
});
```
C
clevercong 已提交
370 371 372 373 374 375 376 377


### on\('open'\)<a name="section923017271834"></a>

on\(type: 'open', callback: AsyncCallback<Object\>\): void

订阅WebSocket的打开事件,使用callback方式作为异步方法。

C
clevercong 已提交
378
**参数:**
C
clevercong 已提交
379

C
clevercong 已提交
380 381 382 383
| 参数名   | 类型                    | 必填 | 说明                          |
| -------- | ----------------------- | ---- | ----------------------------- |
| type     | string                  | 是   | 'open':WebSocket的打开事件。 |
| callback | AsyncCallback\<Object\> | 是   | 回调函数。                    |
C
clevercong 已提交
384 385


C
clevercong 已提交
386
**示例:**
C
clevercong 已提交
387

C
clevercong 已提交
388 389 390 391 392 393
```
let ws = webSocket.createWebSocket();
ws.on('open', (err, value) => {
	console.log("on open, status:" + value.status + ", message:" + value.message);
});
```
C
clevercong 已提交
394 395 396 397 398 399 400 401 402 403 404


### off\('open'\)<a name="section207051331730"></a>

off\(type: 'open', callback?: AsyncCallback<Object\>\): void

取消订阅WebSocket的打开事件,使用callback方式作为异步方法。

>![](public_sys-resources/icon-note.gif) **说明:** 
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

C
clevercong 已提交
405
**参数:**
C
clevercong 已提交
406

C
clevercong 已提交
407 408 409 410
| 参数名   | 类型                    | 必填 | 说明                          |
| -------- | ----------------------- | ---- | ----------------------------- |
| type     | string                  | 是   | 'open':WebSocket的打开事件。 |
| callback | AsyncCallback\<Object\> | 否   | 回调函数。                    |
C
clevercong 已提交
411

C
clevercong 已提交
412
**示例:**
C
clevercong 已提交
413

C
clevercong 已提交
414 415 416 417 418 419 420 421 422
```
let ws = webSocket.createWebSocket();
let callback1 = (err, value) => {
	console.log("on open, status:" + value.status + ", message:" + value.message);
}
ws.on('open', callback1);
// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅
ws.off('open', callback1);
```
C
clevercong 已提交
423 424 425 426 427 428 429 430 431 432 433


### on\('message'\)<a name="section1066819418488"></a>

on\(type: 'message', callback: AsyncCallback<string | ArrayBuffer\>\): void

订阅WebSocket的接收到服务器消息事件,使用callback方式作为异步方法。

>![](public_sys-resources/icon-note.gif) **说明:** 
>AsyncCallback中的数据可以是字符串\(API 6\)或ArrayBuffer\(API 8\)。

C
clevercong 已提交
434
**参数:**
C
clevercong 已提交
435

C
clevercong 已提交
436 437 438 439
| 参数名   | 类型                    | 必填 | 说明                                         |
| -------- | ----------------------- | ---- | -------------------------------------------- |
| type     | string                  | 是   | 'message':WebSocket的接收到服务器消息事件。 |
| callback | AsyncCallback\<string \| ArrayBuffer <sup>8+</sup>\> | 是   | 回调函数。                                   |
C
clevercong 已提交
440 441


C
clevercong 已提交
442
**示例:**
C
clevercong 已提交
443

C
clevercong 已提交
444 445 446 447 448 449
```
let ws = webSocket.createWebSocket();
ws.on('message', (err, value) => {
	console.log("on message, message:" + value);
});
```
C
clevercong 已提交
450 451 452 453 454 455 456 457 458 459 460 461


### off\('message'\)<a name="section1467019413484"></a>

off\(type: 'message', callback?: AsyncCallback<string | ArrayBuffer\>\): void

取消订阅WebSocket的接收到服务器消息事件,使用callback方式作为异步方法。

>![](public_sys-resources/icon-note.gif) **说明:** 
>AsyncCallback中的数据可以是字符串\(API 6\)或ArrayBuffer\(API 8\)。
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

C
clevercong 已提交
462
**参数:**
C
clevercong 已提交
463

C
clevercong 已提交
464 465 466 467
| 参数名   | 类型                                                | 必填 | 说明                                         |
| -------- | --------------------------------------------------- | ---- | -------------------------------------------- |
| type     | string                                              | 是   | 'message':WebSocket的接收到服务器消息事件。 |
| callback | AsyncCallback\<string \|ArrayBuffer <sup>8+</sup>\> | 否   | 回调函数。                                   |
C
clevercong 已提交
468

C
clevercong 已提交
469
**示例:**
C
clevercong 已提交
470

C
clevercong 已提交
471 472 473 474
```
let ws = webSocket.createWebSocket();
ws.off('message');
```
C
clevercong 已提交
475 476 477 478 479 480 481 482


### on\('close'\)<a name="section169378107484"></a>

on\(type: 'close', callback: AsyncCallback<\{ code: number, reason: string \}\>\): void

订阅WebSocket的关闭事件,使用callback方式作为异步方法。

C
clevercong 已提交
483
**参数:**
C
clevercong 已提交
484

C
clevercong 已提交
485 486 487 488
| 参数名   | 类型                                            | 必填 | 说明                           |
| -------- | ----------------------------------------------- | ---- | ------------------------------ |
| type     | string                                          | 是   | 'close':WebSocket的关闭事件。 |
| callback | AsyncCallback<{ code: number, reason: string }> | 是   | 回调函数。                     |
C
clevercong 已提交
489

C
clevercong 已提交
490
**示例:**
C
clevercong 已提交
491

C
clevercong 已提交
492 493 494 495 496 497
```
let ws = webSocket.createWebSocket();
ws.on('close', (err, value) => {
	console.log("on close, code is " + value.code + ", reason is " + value.reason);
});
```
C
clevercong 已提交
498 499 500 501 502 503 504 505 506 507 508


### off\('close'\)<a name="section993911074812"></a>

off\(type: 'close', callback?: AsyncCallback<\{ code: number, reason: string \}\>\): void

取消订阅WebSocket的关闭事件,使用callback方式作为异步方法。

>![](public_sys-resources/icon-note.gif) **说明:** 
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

C
clevercong 已提交
509
**参数:**
C
clevercong 已提交
510

C
clevercong 已提交
511 512 513 514
| 参数名   | 类型                                            | 必填 | 说明                           |
| -------- | ----------------------------------------------- | ---- | ------------------------------ |
| type     | string                                          | 是   | 'close':WebSocket的关闭事件。 |
| callback | AsyncCallback<{ code: number, reason: string }> | 否   | 回调函数。                     |
C
clevercong 已提交
515 516


C
clevercong 已提交
517
**示例:**
C
clevercong 已提交
518

C
clevercong 已提交
519 520 521 522
```
let ws = webSocket.createWebSocket();
ws.off('close');
```
C
clevercong 已提交
523 524 525 526 527 528 529 530


### on\('error'\)<a name="section2997161484815"></a>

on\(type: 'error', callback: ErrorCallback\): void

订阅WebSocket的Error事件,使用callback方式作为异步方法。

C
clevercong 已提交
531
**参数:**
C
clevercong 已提交
532

C
clevercong 已提交
533 534 535 536
| 参数名   | 类型          | 必填 | 说明                            |
| -------- | ------------- | ---- | ------------------------------- |
| type     | string        | 是   | 'error':WebSocket的Error事件。 |
| callback | ErrorCallback | 是   | 回调函数。                      |
C
clevercong 已提交
537 538


C
clevercong 已提交
539
**示例:**
C
clevercong 已提交
540

C
clevercong 已提交
541 542 543 544 545 546
```
let ws = webSocket.createWebSocket();
ws.on('error', (err) => {
	console.log("on error, error:" + JSON.stringify(err))
});
```
C
clevercong 已提交
547 548 549 550 551 552 553 554 555 556 557


### off\('error'\)<a name="section13999114164815"></a>

off\(type: 'error', callback?: ErrorCallback\): void

取消订阅WebSocket的Error事件,使用callback方式作为异步方法。

>![](public_sys-resources/icon-note.gif) **说明:** 
>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

C
clevercong 已提交
558
**参数:**
C
clevercong 已提交
559

C
clevercong 已提交
560 561 562 563
| 参数名   | 类型          | 必填 | 说明                            |
| -------- | ------------- | ---- | ------------------------------- |
| type     | string        | 是   | 'error':WebSocket的Error事件。 |
| callback | ErrorCallback | 否   | 回调函数。                      |
C
clevercong 已提交
564

C
clevercong 已提交
565
**示例:**
C
clevercong 已提交
566

C
clevercong 已提交
567 568 569 570
```
let ws = webSocket.createWebSocket();
ws.off('error');
```
C
clevercong 已提交
571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602


## WebSocketRequestOptions<a name="section11251233123910"></a>

建立WebSocket连接时,可选参数的类型和说明。

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| header | Object | 否   | 建立WebSocket连接可选参数,代表建立连接时携带的HTTP头信息。参数内容自定义,也可以不指定。 |


## WebSocketCloseOptions<a name="section12262183471518"></a>

关闭WebSocket连接时,可选参数的类型和说明。

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| code   | number | 否   | 错误码,关闭WebSocket连接时的可选参数,可根据实际情况来填。默认值为1000。 |
| reason | string | 否   | 原因值,关闭WebSocket连接时的可选参数,可根据实际情况来填。默认值为空字符串("")。 |

## close错误码说明<a name="section1635681416477"></a>

发送给服务端的错误码可以自行定义,下面的列表仅供参考。

| 值        | 说明               |
| :-------- | :----------------- |
| 1000      | 正常关闭           |
| 1001      | 服务器主动关闭     |
| 1002      | 协议错误           |
| 1003      | 无法处理的数据类型 |
| 1004~1015 | 保留值             |