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
:bug: If you found an issue we encourage you to report it on github. Please specify your OS and the actions to reproduce it.
Contributing
:busts_in_silhouette: Ideas and contributions to the project are welcome. You must follow this guideline.
License
MIT © A GEUT project