https://github.com/haimkastner/reconnecting-ws
Wrap WS client to try reconnect websocket server when disconnected by any reason
https://github.com/haimkastner/reconnecting-ws
websocket ws
Last synced: about 1 year ago
JSON representation
Wrap WS client to try reconnect websocket server when disconnected by any reason
- Host: GitHub
- URL: https://github.com/haimkastner/reconnecting-ws
- Owner: haimkastner
- License: mit
- Created: 2018-05-30T05:33:18.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-01-26T10:21:08.000Z (over 4 years ago)
- Last Synced: 2025-04-14T05:16:28.616Z (about 1 year ago)
- Topics: websocket, ws
- Language: TypeScript
- Homepage:
- Size: 26.4 KB
- Stars: 4
- Watchers: 0
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# reconnecting-ws
Wrap WS client to auto reconnect websocket server when disconnected by any reason.
The code is based on https://github.com/websockets/ws/wiki/Websocket-client-implementation-for-auto-reconnect
## Installing
```
npm install --save reconnecting-ws
```
## Using
```typescript
import { WebSocketClient } from 'reconnecting-ws';
class SocketClient {
private webSocketClient: WebSocketClient;
constructor() {
/**
* Init WebSocketClient
* Set trying reconnect when connection lost each 5 seconds, and show console message
*/
this.webSocketClient = new WebSocketClient(5000, true);
/** Subscribe to emitters. */
this.webSocketClient.on('open', this.onOpen);
this.webSocketClient.on('error', this.onError);
this.webSocketClient.on('message', this.onMessage);
this.webSocketClient.on('close', this.onClose);
this.webSocketClient.on('reconnect', this.onReconnect);
/** Connect to server. */
this.webSocketClient.connect('ws://127.0.0.1:3001');
/**
* It`s possible to access WebSocket instance directly.
* without using wrapper of WebSocketClient. (see https://github.com/websockets/ws).
* Note that when trying to reconnect *all* listeners will be removed
*/
const bufferAmount = this.webSocketClient.WebSocketInstance.bufferedAmount;
/** Disconnect manually in minute. */
setTimeout(() => {
this.webSocketClient.disconnect();
}, 60000);
}
private onOpen() {
// TODO
console.log('onOpen');
}
private onClose(code: number, reason: string) {
// TODO
console.log('onClose');
}
private onError(err: Error) {
// TODO
console.log('onError');
}
private onMessage(data: WebSocket.Data) {
// TODO
console.log('onMessage');
}
private onReconnect() {
// TODO
console.log('onReconnect');
}
}
```
For real example see `example` folder.