js-apis-webSocket.md 18.3 KB
Newer Older
C
clevercong 已提交
1
# WebSocket连接
C
clevercong 已提交
2 3 4

>![](public_sys-resources/icon-note.gif) **说明:** 
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
C
clevercong 已提交
5 6
>
>当前暂时不支持WebSocket,预计在MR版本支持。
C
clevercong 已提交
7

C
clevercong 已提交
8
使用WebSocket建立服务器与客户端的双向连接,需要先通过[createWebSocket](#websocketcreatewebsocket)方法创建[WebSocket](#websocket)对象,然后通过[connect](#connect)方法连接到服务器。当连接成功后,客户端会收到[open](#onopen)事件的回调,之后客户端就可以通过[send](#send)方法与服务器进行通信。当服务器发信息给客户端时,客户端会收到[message](#onmessage)事件的回调。当客户端不要此连接时,可以通过调用[close](#close)方法主动断开连接,之后客户端会收到[close](#onclose)事件的回调。
C
clevercong 已提交
9

C
clevercong 已提交
10
若在上述任一过程中发生错误,客户端会收到[error](#onerror)事件的回调。
C
clevercong 已提交
11 12


C
clevercong 已提交
13
## 导入模块
C
clevercong 已提交
14 15 16 17 18

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

C
clevercong 已提交
19
## 完整示例
C
clevercong 已提交
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

```
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));
    }
});
```

C
clevercong 已提交
65
## webSocket.createWebSocket
C
clevercong 已提交
66 67 68 69 70

createWebSocket\(\): WebSocket

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

C
clevercong 已提交
71
**返回值:**
C
clevercong 已提交
72

C
clevercong 已提交
73 74
| 类型                                | 说明                                                         |
| :---------------------------------- | :----------------------------------------------------------- |
C
clevercong 已提交
75
| [WebSocket](#websocket) | 返回一个WebSocket对象,里面包括connect、send、close、on和off方法。 |
C
clevercong 已提交
76

C
clevercong 已提交
77
**示例:**
C
clevercong 已提交
78

C
clevercong 已提交
79 80 81
```
let ws = webSocket.createWebSocket();
```
C
clevercong 已提交
82 83


C
clevercong 已提交
84
## WebSocket
C
clevercong 已提交
85

C
clevercong 已提交
86
在调用WebSocket的方法前,需要先通过[webSocket.createWebSocket](#webSocketcreatewebsocket)创建一个WebSocket。
C
clevercong 已提交
87

C
clevercong 已提交
88
### connect
C
clevercong 已提交
89 90 91 92 93

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

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

C
clevercong 已提交
94 95
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
96
**参数:**
C
clevercong 已提交
97

C
clevercong 已提交
98 99 100 101
| 参数名   | 类型                     | 必填 | 说明                         |
| -------- | ------------------------ | ---- | ---------------------------- |
| url      | string                   | 是   | 建立WebSocket连接的URL地址。 |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。                   |
C
clevercong 已提交
102 103


C
clevercong 已提交
104
**示例:**
C
clevercong 已提交
105

C
clevercong 已提交
106 107 108 109 110 111 112 113 114 115 116
```
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 已提交
117 118


C
clevercong 已提交
119
### connect
C
clevercong 已提交
120 121 122 123 124

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

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

C
clevercong 已提交
125 126
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
127
**参数:**
C
clevercong 已提交
128

C
clevercong 已提交
129 130 131
| 参数名   | 类型                     | 必填 | 说明                                                    |
| -------- | ------------------------ | ---- | ------------------------------------------------------- |
| url      | string                   | 是   | 建立WebSocket连接的URL地址。                            |
C
clevercong 已提交
132
| options  | WebSocketRequestOptions  | 是   | 参考[WebSocketRequestOptions](#websocketrequestoptions)。 |
C
clevercong 已提交
133
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。                                              |
C
clevercong 已提交
134 135


C
clevercong 已提交
136
**示例:**
C
clevercong 已提交
137

C
clevercong 已提交
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
```
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 已提交
154 155


C
clevercong 已提交
156
### connect
C
clevercong 已提交
157 158 159 160 161

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

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

C
clevercong 已提交
162 163
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
164
**参数:**
C
clevercong 已提交
165

C
clevercong 已提交
166 167 168
| 参数名  | 类型                    | 必填 | 说明                                                    |
| ------- | ----------------------- | ---- | ------------------------------------------------------- |
| url     | string                  | 是   | 建立WebSocket连接的URL地址。                            |
C
clevercong 已提交
169
| options | WebSocketRequestOptions | 否   | 参考[WebSocketRequestOptions](#websocketrequestoptions)。 |
C
clevercong 已提交
170

C
clevercong 已提交
171
**返回值:**
C
clevercong 已提交
172

C
clevercong 已提交
173 174 175
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回建立连接的结果。 |
C
clevercong 已提交
176

C
clevercong 已提交
177
**示例:**
C
clevercong 已提交
178

C
clevercong 已提交
179 180 181 182 183 184 185 186 187 188
```
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 已提交
189 190


C
clevercong 已提交
191
### send
C
clevercong 已提交
192 193 194 195 196

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

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

C
clevercong 已提交
197 198
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
199
**参数:**
C
clevercong 已提交
200

C
clevercong 已提交
201 202 203 204
| 参数名   | 类型                     | 必填 | 说明         |
| -------- | ------------------------ | ---- | ------------ |
| data     | string \| ArrayBuffer <sup>8+</sup> | 是   | 发送的数据。 |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。   |
C
clevercong 已提交
205

C
clevercong 已提交
206
**示例:**
C
clevercong 已提交
207

C
clevercong 已提交
208 209 210 211 212 213 214 215 216 217 218 219 220
```
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 已提交
221 222


C
clevercong 已提交
223
### send
C
clevercong 已提交
224 225 226 227 228

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

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

C
clevercong 已提交
229 230
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
231
**参数:**
C
clevercong 已提交
232

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

C
clevercong 已提交
237
**返回值:**
C
clevercong 已提交
238

C
clevercong 已提交
239 240 241
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回发送数据的结果。 |
C
clevercong 已提交
242

C
clevercong 已提交
243
**示例:**
C
clevercong 已提交
244

C
clevercong 已提交
245 246 247 248 249 250 251 252 253 254 255 256
```
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 已提交
257 258


C
clevercong 已提交
259
### close
C
clevercong 已提交
260 261 262 263 264

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

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

C
clevercong 已提交
265 266
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
267
**参数:**
C
clevercong 已提交
268

C
clevercong 已提交
269 270 271
| 参数名   | 类型                     | 必填 | 说明       |
| -------- | ------------------------ | ---- | ---------- |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。 |
C
clevercong 已提交
272

C
clevercong 已提交
273
**示例:**
C
clevercong 已提交
274

C
clevercong 已提交
275 276 277 278 279 280 281 282 283 284 285
```
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 已提交
286 287


C
clevercong 已提交
288
### close
C
clevercong 已提交
289 290 291 292 293

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

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

C
clevercong 已提交
294 295
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
296
**参数:**
C
clevercong 已提交
297

C
clevercong 已提交
298 299
| 参数名   | 类型                     | 必填 | 说明                                                  |
| -------- | ------------------------ | ---- | ----------------------------------------------------- |
C
clevercong 已提交
300
| options  | WebSocketCloseOptions    | 是   | 参考[WebSocketCloseOptions](#websocketcloseoptions)。 |
C
clevercong 已提交
301
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。                                            |
C
clevercong 已提交
302

C
clevercong 已提交
303
**示例:**
C
clevercong 已提交
304

C
clevercong 已提交
305 306 307 308 309 310 311 312 313 314 315 316 317 318
```
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 已提交
319 320


C
clevercong 已提交
321
### close
C
clevercong 已提交
322 323 324 325 326

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

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

C
clevercong 已提交
327 328
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
329
**参数:**
C
clevercong 已提交
330

C
clevercong 已提交
331 332
| 参数名  | 类型                  | 必填 | 说明                                                  |
| ------- | --------------------- | ---- | ----------------------------------------------------- |
C
clevercong 已提交
333
| options | WebSocketCloseOptions | 否   | 参考[WebSocketCloseOptions](#websocketcloseoptions)。 |
C
clevercong 已提交
334

C
clevercong 已提交
335
**返回值:**
C
clevercong 已提交
336

C
clevercong 已提交
337 338 339
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回关闭连接的结果。 |
C
clevercong 已提交
340

C
clevercong 已提交
341
**示例:**
C
clevercong 已提交
342

C
clevercong 已提交
343 344 345 346 347 348 349 350 351 352 353 354 355
```
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 已提交
356 357


C
clevercong 已提交
358
### on\('open'\)
C
clevercong 已提交
359 360 361 362 363

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

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

C
clevercong 已提交
364
**参数:**
C
clevercong 已提交
365

C
clevercong 已提交
366 367 368 369
| 参数名   | 类型                    | 必填 | 说明                          |
| -------- | ----------------------- | ---- | ----------------------------- |
| type     | string                  | 是   | 'open':WebSocket的打开事件。 |
| callback | AsyncCallback\<Object\> | 是   | 回调函数。                    |
C
clevercong 已提交
370 371


C
clevercong 已提交
372
**示例:**
C
clevercong 已提交
373

C
clevercong 已提交
374 375 376 377 378 379
```
let ws = webSocket.createWebSocket();
ws.on('open', (err, value) => {
	console.log("on open, status:" + value.status + ", message:" + value.message);
});
```
C
clevercong 已提交
380 381


C
clevercong 已提交
382
### off\('open'\)
C
clevercong 已提交
383 384 385 386 387 388 389 390

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

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

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

C
clevercong 已提交
391
**参数:**
C
clevercong 已提交
392

C
clevercong 已提交
393 394 395 396
| 参数名   | 类型                    | 必填 | 说明                          |
| -------- | ----------------------- | ---- | ----------------------------- |
| type     | string                  | 是   | 'open':WebSocket的打开事件。 |
| callback | AsyncCallback\<Object\> | 否   | 回调函数。                    |
C
clevercong 已提交
397

C
clevercong 已提交
398
**示例:**
C
clevercong 已提交
399

C
clevercong 已提交
400 401 402 403 404 405 406 407 408
```
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 已提交
409 410


C
clevercong 已提交
411
### on\('message'\)
C
clevercong 已提交
412 413 414 415 416 417 418 419

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

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

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

C
clevercong 已提交
420
**参数:**
C
clevercong 已提交
421

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


C
clevercong 已提交
428
**示例:**
C
clevercong 已提交
429

C
clevercong 已提交
430 431 432 433 434 435
```
let ws = webSocket.createWebSocket();
ws.on('message', (err, value) => {
	console.log("on message, message:" + value);
});
```
C
clevercong 已提交
436 437


C
clevercong 已提交
438
### off\('message'\)
C
clevercong 已提交
439 440 441 442 443 444 445 446 447

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 已提交
448
**参数:**
C
clevercong 已提交
449

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

C
clevercong 已提交
455
**示例:**
C
clevercong 已提交
456

C
clevercong 已提交
457 458 459 460
```
let ws = webSocket.createWebSocket();
ws.off('message');
```
C
clevercong 已提交
461 462


C
clevercong 已提交
463
### on\('close'\)
C
clevercong 已提交
464 465 466 467 468

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

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

C
clevercong 已提交
469
**参数:**
C
clevercong 已提交
470

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

C
clevercong 已提交
476
**示例:**
C
clevercong 已提交
477

C
clevercong 已提交
478 479 480 481 482 483
```
let ws = webSocket.createWebSocket();
ws.on('close', (err, value) => {
	console.log("on close, code is " + value.code + ", reason is " + value.reason);
});
```
C
clevercong 已提交
484 485


C
clevercong 已提交
486
### off\('close'\)
C
clevercong 已提交
487 488 489 490 491 492 493 494

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

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

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

C
clevercong 已提交
495
**参数:**
C
clevercong 已提交
496

C
clevercong 已提交
497 498 499 500
| 参数名   | 类型                                            | 必填 | 说明                           |
| -------- | ----------------------------------------------- | ---- | ------------------------------ |
| type     | string                                          | 是   | 'close':WebSocket的关闭事件。 |
| callback | AsyncCallback<{ code: number, reason: string }> | 否   | 回调函数。                     |
C
clevercong 已提交
501 502


C
clevercong 已提交
503
**示例:**
C
clevercong 已提交
504

C
clevercong 已提交
505 506 507 508
```
let ws = webSocket.createWebSocket();
ws.off('close');
```
C
clevercong 已提交
509 510


C
clevercong 已提交
511
### on\('error'\)
C
clevercong 已提交
512 513 514 515 516

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

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

C
clevercong 已提交
517
**参数:**
C
clevercong 已提交
518

C
clevercong 已提交
519 520 521 522
| 参数名   | 类型          | 必填 | 说明                            |
| -------- | ------------- | ---- | ------------------------------- |
| type     | string        | 是   | 'error':WebSocket的Error事件。 |
| callback | ErrorCallback | 是   | 回调函数。                      |
C
clevercong 已提交
523 524


C
clevercong 已提交
525
**示例:**
C
clevercong 已提交
526

C
clevercong 已提交
527 528 529 530 531 532
```
let ws = webSocket.createWebSocket();
ws.on('error', (err) => {
	console.log("on error, error:" + JSON.stringify(err))
});
```
C
clevercong 已提交
533 534


C
clevercong 已提交
535
### off\('error'\)
C
clevercong 已提交
536 537 538 539 540 541 542 543

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

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

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

C
clevercong 已提交
544
**参数:**
C
clevercong 已提交
545

C
clevercong 已提交
546 547 548 549
| 参数名   | 类型          | 必填 | 说明                            |
| -------- | ------------- | ---- | ------------------------------- |
| type     | string        | 是   | 'error':WebSocket的Error事件。 |
| callback | ErrorCallback | 否   | 回调函数。                      |
C
clevercong 已提交
550

C
clevercong 已提交
551
**示例:**
C
clevercong 已提交
552

C
clevercong 已提交
553 554 555 556
```
let ws = webSocket.createWebSocket();
ws.off('error');
```
C
clevercong 已提交
557 558


C
clevercong 已提交
559
## WebSocketRequestOptions
C
clevercong 已提交
560 561 562 563 564 565 566 567

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

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


C
clevercong 已提交
568
## WebSocketCloseOptions
C
clevercong 已提交
569 570 571 572 573 574 575 576

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

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

C
clevercong 已提交
577
## close错误码说明
C
clevercong 已提交
578 579 580 581 582 583 584 585 586 587 588

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

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