Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 17 hours 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 (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-01-26T10:21:08.000Z (almost 3 years ago)
- Last Synced: 2023-08-24T06:33:40.316Z (about 1 year ago)
- Topics: websocket, ws
- Language: TypeScript
- Homepage:
- Size: 26.4 KB
- Stars: 4
- Watchers: 1
- 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.