* Set up method for the client's websocket instance. This method will attach event listeners.
(url: string)
| 550 | * Set up method for the client's websocket instance. This method will attach event listeners. |
| 551 | */ |
| 552 | private setupWebsocket(url: string): void { |
| 553 | // initialize the websocket |
| 554 | const options: WebSocket.ClientOptions = Object.assign( |
| 555 | { |
| 556 | perMessageDeflate: false, |
| 557 | }, |
| 558 | this.tlsConfig, |
| 559 | ); |
| 560 | if (this.agentConfig !== undefined) { |
| 561 | options.agent = this.agentConfig; |
| 562 | } |
| 563 | this.websocket = new WebSocket(url, options); |
| 564 | |
| 565 | // attach event listeners |
| 566 | this.websocket.addEventListener('open', event => this.stateMachine.handle('websocket open', event)); |
| 567 | this.websocket.addEventListener('close', event => this.stateMachine.handle('websocket close', event)); |
| 568 | this.websocket.addEventListener('error', (event) => { |
| 569 | this.logger.error(`A websocket error occurred: ${event.message}`); |
| 570 | this.emit('error', websocketErrorWithOriginal(event.error)); |
| 571 | }); |
| 572 | this.websocket.addEventListener('message', this.onWebsocketMessage.bind(this)); |
| 573 | } |
| 574 | |
| 575 | /** |
| 576 | * Tear down method for the client's websocket instance. This method undoes the work in setupWebsocket(url). |
no test coverage detected