@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

Dependencies (0)

    Dev Dependencies (12)

    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