npm.io
10.0.7 • Published 4 years agoCLI

socket-signal-websocket

Licence
MIT
Version
10.0.7
Deps
7
Size
11 kB
Vulns
0
Weekly
0
Stars
6

socket-signal-websocket

Build Status JavaScript Style Guide standard-readme compliant

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

Keywords