ltws
Version:
Less Than Websocket
141 lines (103 loc) • 2.39 kB
Markdown
# ltws is a websocket library
ltws will manage ws connection that will automatically reconnect if the connection is closed.
## Install
```bash
npm i ltws
```
#### Or
```bash
npm install --save ltws
```
## Usage
### Simple usage
```javascript
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
```javascript
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
```javascript
import ltws from 'ltws'
const options = {
connectTimeout: 5000,
maxRetries: 10,
}
const ltws = ltws.connect('ws://my.site.com', options)
```
#### Available options
```typescript
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
```javascript
{
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
```typescript
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