@aller/rtc-reconnect
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

RTCReconnect

RTCReconnect (name pending) is the websocket with reconnect functionality repo for Aller. In the future, this might be expanded to include functionality for fallback protocols when websockets is not accessible for the current connection.

Use

Using the package is quite simple;

import { RTCReconnect } from '@aller/rtc-reconnect'

// The hostname here can be both with https, http, ws, wss and so on, it is stripped, always.
const client = new RTCReconnect(`localhost:PORT`, {
    reconnect?: boolean
    protocols?: string | string[]
    secure?: boolean
}) 

// After you have created a new instance of RTCReconnect, you can add the listeners on the object

client.on(Events.MESSAGE, (event) => { [...] })
client.on(Events.RECONNECT, (event) => { [...] })
client.on(Events.OPEN, (event) => { [...] })
client.on(Events.CLOSE, (event) => { [...] })
client.on(Events.ERROR, (event) => { [...] })

// After listeners have been added, you can connect
client.connect()


// If you want to remove any listeners, you can call
client.off(Events.EVENTNAME, FUNCTIONYOUADDEDHERE)


// When its time to disconnect, this can be done with
client.disconnect()


// To get a simplified view of the state and whether the client is connected,
// you can run
client.connected()


// If you need more info on the state of the client, the full state is also exposed
client.state()

To combat multiple clients reconnecting at the same time, the reconnect-time is set to a random number between 0-3000 ms. This should probably be improved on, depending on the performance of this.

Testing

Tests are done with ts-jest, and mocks a websocket server locally that returns whatever is sent to the server, back to the client. The tests includes tests for sending and receiving data + reconnect-functionality

yarn test

See if there are any tests breaking.

If you want to test in your browser, you can run

yarn test:browser

Readme

Keywords

Package Sidebar

Install

npm i @aller/rtc-reconnect

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

38.1 kB

Total Files

29

Last publish

Collaborators

  • toremeek
  • aslak2800
  • roninjc
  • mariusjn
  • lobunto
  • konrad-j
  • oyvigri
  • goodleby
  • jimoe
  • vnorvik
  • kevinmidboe