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

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

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

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


C
clevercong 已提交
12
## 导入模块
C
clevercong 已提交
13

Z
zengyawen 已提交
14
```js
C
clevercong 已提交
15 16 17
import webSocket from '@ohos.net.webSocket';
```

C
clevercong 已提交
18
## 完整示例
C
clevercong 已提交
19

Z
zengyawen 已提交
20
```js
C
clevercong 已提交
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
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 已提交
64
## webSocket.createWebSocket
C
clevercong 已提交
65 66 67 68 69

createWebSocket\(\): WebSocket

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

C
clevercong 已提交
70
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
71

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

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

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

Z
zengyawen 已提交
80
```js
C
clevercong 已提交
81 82
let ws = webSocket.createWebSocket();
```
C
clevercong 已提交
83 84


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

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

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

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

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

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

C
clevercong 已提交
97
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
98

C
clevercong 已提交
99
**参数:**
C
clevercong 已提交
100

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


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

Z
zengyawen 已提交
109
```js
C
clevercong 已提交
110 111 112 113 114 115 116 117 118 119
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 已提交
120 121


C
clevercong 已提交
122
### connect
C
clevercong 已提交
123 124 125 126 127

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

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

C
clevercong 已提交
128 129
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
130
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
131

C
clevercong 已提交
132
**参数:**
C
clevercong 已提交
133

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


C
clevercong 已提交
141
**示例:**
C
clevercong 已提交
142

Z
zengyawen 已提交
143
```js
C
clevercong 已提交
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
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 已提交
159 160


C
clevercong 已提交
161
### connect
C
clevercong 已提交
162 163 164 165 166

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

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

C
clevercong 已提交
167 168
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
169
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
170

C
clevercong 已提交
171
**参数:**
C
clevercong 已提交
172

C
clevercong 已提交
173 174 175
| 参数名  | 类型                    | 必填 | 说明                                                    |
| ------- | ----------------------- | ---- | ------------------------------------------------------- |
| url     | string                  | 是   | 建立WebSocket连接的URL地址。                            |
C
clevercong 已提交
176
| options | WebSocketRequestOptions | 否   | 参考[WebSocketRequestOptions](#websocketrequestoptions)。 |
C
clevercong 已提交
177

C
clevercong 已提交
178
**返回值:**
C
clevercong 已提交
179

C
clevercong 已提交
180 181 182
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回建立连接的结果。 |
C
clevercong 已提交
183

C
clevercong 已提交
184
**示例:**
C
clevercong 已提交
185

Z
zengyawen 已提交
186
```js
C
clevercong 已提交
187 188 189 190 191 192 193 194 195
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 已提交
196 197


C
clevercong 已提交
198
### send
C
clevercong 已提交
199 200 201 202 203

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

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

C
clevercong 已提交
204 205
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
206
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
207

C
clevercong 已提交
208
**参数:**
C
clevercong 已提交
209

C
clevercong 已提交
210 211 212 213
| 参数名   | 类型                     | 必填 | 说明         |
| -------- | ------------------------ | ---- | ------------ |
| data     | string \| ArrayBuffer <sup>8+</sup> | 是   | 发送的数据。 |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。   |
C
clevercong 已提交
214

C
clevercong 已提交
215
**示例:**
C
clevercong 已提交
216

Z
zengyawen 已提交
217
```js
C
clevercong 已提交
218 219 220 221 222 223 224 225 226 227 228 229
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 已提交
230 231


C
clevercong 已提交
232
### send
C
clevercong 已提交
233 234 235 236 237

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

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

C
clevercong 已提交
238 239
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
240
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
241

C
clevercong 已提交
242
**参数:**
C
clevercong 已提交
243

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

C
clevercong 已提交
248
**返回值:**
C
clevercong 已提交
249

C
clevercong 已提交
250 251 252
| 类型               | 说明                              |
| :----------------- | :-------------------------------- |
| Promise\<boolean\> | 以Promise形式返回发送数据的结果。 |
C
clevercong 已提交
253

C
clevercong 已提交
254
**示例:**
C
clevercong 已提交
255

Z
zengyawen 已提交
256
```js
C
clevercong 已提交
257 258 259 260 261 262 263 264 265 266 267
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 已提交
268 269


C
clevercong 已提交
270
### close
C
clevercong 已提交
271 272 273 274 275

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

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

C
clevercong 已提交
276 277
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
278
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
279

C
clevercong 已提交
280
**参数:**
C
clevercong 已提交
281

C
clevercong 已提交
282 283 284
| 参数名   | 类型                     | 必填 | 说明       |
| -------- | ------------------------ | ---- | ---------- |
| callback | AsyncCallback\<boolean\> | 是   | 回调函数。 |
C
clevercong 已提交
285

C
clevercong 已提交
286
**示例:**
C
clevercong 已提交
287

Z
zengyawen 已提交
288
```js
C
clevercong 已提交
289 290 291 292 293 294 295 296 297 298
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 已提交
299 300


C
clevercong 已提交
301
### close
C
clevercong 已提交
302 303 304 305 306

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

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

C
clevercong 已提交
307 308
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
309
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
310

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

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

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

Z
zengyawen 已提交
320
```js
C
clevercong 已提交
321 322 323 324 325 326 327 328 329 330 331 332 333
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 已提交
334 335


C
clevercong 已提交
336
### close
C
clevercong 已提交
337 338 339 340 341

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

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

C
clevercong 已提交
342 343
**需要权限**:ohos.permission.INTERNET

C
clevercong 已提交
344
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
345

C
clevercong 已提交
346
**参数:**
C
clevercong 已提交
347

C
clevercong 已提交
348 349
| 参数名  | 类型                  | 必填 | 说明                                                  |
| ------- | --------------------- | ---- | ----------------------------------------------------- |
C
clevercong 已提交
350
| options | WebSocketCloseOptions | 否   | 参考[WebSocketCloseOptions](#websocketcloseoptions)。 |
C
clevercong 已提交
351

C
clevercong 已提交
352
**返回值:**
C
clevercong 已提交
353

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

C
clevercong 已提交
358
**示例:**
C
clevercong 已提交
359

Z
zengyawen 已提交
360
```js
C
clevercong 已提交
361 362 363 364 365 366 367 368 369 370 371 372
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 已提交
373 374


C
clevercong 已提交
375
### on\('open'\)
C
clevercong 已提交
376 377 378 379 380

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

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

C
clevercong 已提交
381
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
382

C
clevercong 已提交
383
**参数:**
C
clevercong 已提交
384

C
clevercong 已提交
385 386 387 388
| 参数名   | 类型                    | 必填 | 说明                          |
| -------- | ----------------------- | ---- | ----------------------------- |
| type     | string                  | 是   | 'open':WebSocket的打开事件。 |
| callback | AsyncCallback\<Object\> | 是   | 回调函数。                    |
C
clevercong 已提交
389 390


C
clevercong 已提交
391
**示例:**
C
clevercong 已提交
392

Z
zengyawen 已提交
393
```js
C
clevercong 已提交
394 395 396 397 398
let ws = webSocket.createWebSocket();
ws.on('open', (err, value) => {
	console.log("on open, status:" + value.status + ", message:" + value.message);
});
```
C
clevercong 已提交
399 400


C
clevercong 已提交
401
### off\('open'\)
C
clevercong 已提交
402 403 404 405 406 407 408 409

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

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

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

C
clevercong 已提交
410
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
411

C
clevercong 已提交
412
**参数:**
C
clevercong 已提交
413

C
clevercong 已提交
414 415 416 417
| 参数名   | 类型                    | 必填 | 说明                          |
| -------- | ----------------------- | ---- | ----------------------------- |
| type     | string                  | 是   | 'open':WebSocket的打开事件。 |
| callback | AsyncCallback\<Object\> | 否   | 回调函数。                    |
C
clevercong 已提交
418

C
clevercong 已提交
419
**示例:**
C
clevercong 已提交
420

Z
zengyawen 已提交
421
```js
C
clevercong 已提交
422 423 424 425 426 427 428 429
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 已提交
430 431


C
clevercong 已提交
432
### on\('message'\)
C
clevercong 已提交
433 434 435 436 437 438 439 440

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

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

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

C
clevercong 已提交
441
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
442

C
clevercong 已提交
443
**参数:**
C
clevercong 已提交
444

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


C
clevercong 已提交
451
**示例:**
C
clevercong 已提交
452

Z
zengyawen 已提交
453
```js
C
clevercong 已提交
454 455 456 457 458
let ws = webSocket.createWebSocket();
ws.on('message', (err, value) => {
	console.log("on message, message:" + value);
});
```
C
clevercong 已提交
459 460


C
clevercong 已提交
461
### off\('message'\)
C
clevercong 已提交
462 463 464 465 466 467 468 469 470

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 已提交
471
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
472

C
clevercong 已提交
473
**参数:**
C
clevercong 已提交
474

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

C
clevercong 已提交
480
**示例:**
C
clevercong 已提交
481

Z
zengyawen 已提交
482
```js
C
clevercong 已提交
483 484 485
let ws = webSocket.createWebSocket();
ws.off('message');
```
C
clevercong 已提交
486 487


C
clevercong 已提交
488
### on\('close'\)
C
clevercong 已提交
489 490 491 492 493

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

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

C
clevercong 已提交
494
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
495

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

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

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

Z
zengyawen 已提交
505
```js
C
clevercong 已提交
506 507 508 509 510
let ws = webSocket.createWebSocket();
ws.on('close', (err, value) => {
	console.log("on close, code is " + value.code + ", reason is " + value.reason);
});
```
C
clevercong 已提交
511 512


C
clevercong 已提交
513
### off\('close'\)
C
clevercong 已提交
514 515 516 517 518 519 520 521

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

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

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

C
clevercong 已提交
522
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
523

C
clevercong 已提交
524
**参数:**
C
clevercong 已提交
525

C
clevercong 已提交
526 527 528 529
| 参数名   | 类型                                            | 必填 | 说明                           |
| -------- | ----------------------------------------------- | ---- | ------------------------------ |
| type     | string                                          | 是   | 'close':WebSocket的关闭事件。 |
| callback | AsyncCallback<{ code: number, reason: string }> | 否   | 回调函数。                     |
C
clevercong 已提交
530 531


C
clevercong 已提交
532
**示例:**
C
clevercong 已提交
533

Z
zengyawen 已提交
534
```js
C
clevercong 已提交
535 536 537
let ws = webSocket.createWebSocket();
ws.off('close');
```
C
clevercong 已提交
538 539


C
clevercong 已提交
540
### on\('error'\)
C
clevercong 已提交
541 542 543 544 545

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

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

C
clevercong 已提交
546
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
547

C
clevercong 已提交
548
**参数:**
C
clevercong 已提交
549

C
clevercong 已提交
550 551 552 553
| 参数名   | 类型          | 必填 | 说明                            |
| -------- | ------------- | ---- | ------------------------------- |
| type     | string        | 是   | 'error':WebSocket的Error事件。 |
| callback | ErrorCallback | 是   | 回调函数。                      |
C
clevercong 已提交
554 555


C
clevercong 已提交
556
**示例:**
C
clevercong 已提交
557

Z
zengyawen 已提交
558
```js
C
clevercong 已提交
559 560 561 562 563
let ws = webSocket.createWebSocket();
ws.on('error', (err) => {
	console.log("on error, error:" + JSON.stringify(err))
});
```
C
clevercong 已提交
564 565


C
clevercong 已提交
566
### off\('error'\)
C
clevercong 已提交
567 568 569 570 571 572 573 574

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

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

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

C
clevercong 已提交
575
**系统能力**:SystemCapability.Communication.NetStack
C
clevercong 已提交
576

C
clevercong 已提交
577
**参数:**
C
clevercong 已提交
578

C
clevercong 已提交
579 580 581 582
| 参数名   | 类型          | 必填 | 说明                            |
| -------- | ------------- | ---- | ------------------------------- |
| type     | string        | 是   | 'error':WebSocket的Error事件。 |
| callback | ErrorCallback | 否   | 回调函数。                      |
C
clevercong 已提交
583

C
clevercong 已提交
584
**示例:**
C
clevercong 已提交
585

Z
zengyawen 已提交
586
```js
C
clevercong 已提交
587 588 589
let ws = webSocket.createWebSocket();
ws.off('error');
```
C
clevercong 已提交
590 591


C
clevercong 已提交
592
## WebSocketRequestOptions
C
clevercong 已提交
593 594 595

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

C
clevercong 已提交
596 597
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

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


C
clevercong 已提交
603
## WebSocketCloseOptions
C
clevercong 已提交
604 605 606

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

C
clevercong 已提交
607 608
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

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

C
clevercong 已提交
614
## close错误码说明
C
clevercong 已提交
615 616 617

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

C
clevercong 已提交
618 619
**系统能力**:以下各项对应的系统能力均为SystemCapability.Communication.NetStack。

C
clevercong 已提交
620 621 622 623 624 625 626 627
| 值        | 说明               |
| :-------- | :----------------- |
| 1000      | 正常关闭           |
| 1001      | 服务器主动关闭     |
| 1002      | 协议错误           |
| 1003      | 无法处理的数据类型 |
| 1004~1015 | 保留值             |