Home
Softono

Websocket Pool

Open source JavaScript
21
Stars
2
Forks
0
Issues
1
Watchers
4 years
Last Commit

 About Websocket Pool

A pool of WebSocket connections. Supports reconnecting.

Platforms

Web Self-hosted

Languages

JavaScript

Need Help Installing Websocket Pool?

We provide expert installation service for this software. Our team will install, configure, and secure Websocket Pool on your server. plans start at just $30.

Websocket Pool

View on GitHub

websocket-pool

A pool of WebSocket connections. Supports reconnecting. Allows load-balancing messages over multiple WebSocket servers, using any scheduling scheme (e.g. round robin).

npm version build status ISC-licensed support me via GitHub Sponsors chat with me on Twitter

Installation

npm install websocket-pool

Usage

const createPool = require('websocket-pool')
const WebSocket = require('ws')
const createRoundRobin = require('@derhuerst/round-robin-scheduler')

const pool = createPool(WebSocket, createRoundRobin)

// incoming message, just like websocket.on('message')
pool.on('message', (msg) => {
	console.log('<-', msg.data)
	pool.close()
})

// >= 1 connection in the pool is open
pool.once('open', () => {
	pool.send('hello there')
})

// the pool failed to reconnect after retrying
pool.on('error', (err) => {
	console.error(err)
})

const urls = [
	'ws://echo.websocket.org/#1',
	'ws://echo.websocket.org/#2',
	'ws://echo.websocket.org/#3'
]
for (let url of urls) pool.add(url)

websocket-pool accepts any WebSocket implementation. For example, you can use the native implementation in browsers or ws in Node.

The createScheduler function must implement the abstract-scheduler interface.

Related

Contributing

If you have a question or need support using websocket-pool, please double-check your code and setup first. If you think you have found a bug or want to propose a feature, refer to the issues page.