socket-signal-websocket
socket-signal through simple-websocket and reconnecting support
Install
$ npm install socket-signal-websocket
Usage
Server
$ npx socket-signal-websocket [--port=4000]
Client
const { SocketSignalWebsocketClient } = require('socket-signal-websocket')
// you can define multiple server urls for fallback reconnections
const client = new SocketSignalWebsocketClient([
'ws://localhost:4000',
'ws://localhost:4001',
'ws://localhost:4002'
], {
heartbeat: {
interval: 10 * 1000,
timeout: 5 * 1000
},
simpleWebsocket: {}, // https://github.com/feross/simple-websocket options
reconnectingWebsocket: {}, // https://github.com/pladaria/reconnecting-websocket options
simplePeer: {} // https://github.com/feross/simple-peer options
})
;(async () => {
await client.open()
client.onIncomingPeer(async (peer) => {
if (validPeer(peer)) return
throw new Error('invalid peer')
})
const peersForThatTopic = await client.join(topic)
const remotePeer = client.connect(topic, peersForThatTopic[0])
try {
await remotePeer.ready()
// SimplePeer connected
} catch(err) {
// SimplePeer rejected
}
})()
Issues
If you found an issue we encourage you to report it on github. Please specify your OS and the actions to reproduce it.
Contributing
Ideas and contributions to the project are welcome. You must follow this guideline.
License
MIT A GEUT project