Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

webrtc-swarm

Package Overview
Dependencies
Maintainers
2
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webrtc-swarm

Create a swarm of p2p connections using webrtc and a signalhub

  • 2.9.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

webrtc-swarm

Create a swarm of p2p connections using webrtc and a signalhub.

npm install webrtc-swarm

Usage

var swarm = require('webrtc-swarm')
var signalhub = require('signalhub')

var hub = signalhub('swarm-example', ['http://yourdomain.com'])

var sw = swarm(hub, {
  wrtc: require('wrtc') // don't need this if used in the browser
})

sw.on('peer', function (peer, id) {
  console.log('connected to a new peer:', id)
  console.log('total peers:', sw.peers.length)
})

sw.on('disconnect', function (peer, id) {
  console.log('disconnected from a peer:', id)
  console.log('total peers:', sw.peers.length)
})

API

var swarm = require('webrtc-swarm')

var sw = swarm(hub, opts)

Creates a new webrtc swarm using signalhub hub for discovery and connection brokering.

Valid keys for opts include:

  • wrtc - (optional) a reference to the wrtc library, if using Node.
  • uuid - (optional) a unique identifier for this peer. One is generated for you if not supplied.
  • maxPeers - (optional) the maximum number of peers you wish to connect to. Defaults to unlimited.
  • wrap - (optional) a function that can modify the WebRTC signaling data before it gets send out. It's called with wrap(outgoingSignalingData, destinationSignalhubChannel) and must return the wrapped signaling data.
  • unwrap - (optional) a function that can modify the WebRTC signaling data before it gets processed. It's called with unwrap(incomingData, sourceSignalhubChannel) and must return the raw signaling data.

Additional optional keys can be passed through to the underlying simple-peer instances:

  • channelConfig - custom webrtc data channel configuration (used by createDataChannel)
  • config - custom webrtc configuration (used by RTCPeerConnection constructor)
  • stream - if video/voice is desired, pass stream returned from getUserMedia

sw.close()

Disconnect from swarm

sw.on('peer|connect', peer, id)

peer and connect are interchangeable. Fires when a connection has been established to a new peer peer, with unique id id.

sw.on('disconnect', peer, id)

Fires when an existing peer connection is lost.

peer is a simple-peer instance.

sw.on('close')

Fires when all peer and signalhub connections are closed

sw.peers

A list of peers that sw is currently connected to.

swarm.WEBRTC_SUPPORT

Detect native WebRTC support in the javascript environment.

var swarm = require('webrtc-swarm')

if (swarm.WEBRTC_SUPPORT) {
  // webrtc support!
} else {
  // fallback
}

License

MIT

FAQs

Package last updated on 14 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc