ltws is a websocket library
ltws will manage ws connection that will automatically reconnect if the connection is closed.
Install
npm i ltws
Or
npm install --save ltws
Usage
Simple usage
import ltws from 'ltws'
const ws = ltws.connect('ws://my.site.com')
ws.on('connect', () => {
ws.send('hello!')
ws.sendJson({msg: 'hello!'})
})
ws.on('json', (message) => {
console.log('on json', message)
})
ws.on('message', (message) => {
console.log('on message', message)
})
ws.once('message', (message) => {
console.log('once message', message)
})
Async usage
import ltws from 'ltws'
const ws = ltws.createInstance()
ws.on('json', (message) => {
console.log('on json', message)
})
ws.on('message', (message) => {
console.log('on message', message)
})
ws.once('message', (message) => {
console.log('once message', message)
})
await ws.connectAsync('ws://my.site.com')
Options
Sample with custom options
import ltws from 'ltws'
const options = {
connectTimeout: 5000,
maxRetries: 10,
}
const ltws = ltws.connect('ws://my.site.com', options)
Available options
type Options = {
pingInterval?: number
pingTimeout?: number
connectTimeout?: number
reconnectTimeout?: number
reconnectDelay?: number
maxRetries?: number
useReconnectEvent?: boolean
autoReconnect?: boolean
debug?: boolean
warn?: boolean
error?: boolean
}
Default values
{
pingInterval: 5000,
pingTimeout: 5000,
connectTimeout: 5000,
reconnectTimeout: 5000,
reconnectDelay: 5000,
maxRetries: Number.MAX_SAFE_INTEGER,
useReconnectEvent: false,
autoReconnect: true,
debug: false,
warn: true,
error: true
}
API
Methods
connect(url: String, options: Options)
reconnect()
disconnect()
send(data: string | ArrayBuffer | Blob | ArrayBufferView)
sendJson(data: Object)
type Event = 'ping' | 'pong' | 'message' | 'json' | 'connect' | 'reconnect' | 'reconnecting' | 'disconnect' | 'disconnecting' | 'error' | 'connectError'
on(type: Event, listener: EventListener)
once(type: Event, listener: EventListener)
off(type: Event, listener: EventListener)
removeListener(type: Event, listener: EventListener)
removeOnceListener(type: Event, listener: EventListener)
License
MIT