webrtc-swarm

Create a swarm of p2p connections using webrtc and a signalhub

  • Owner: mafintosh/webrtc-swarm
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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

Main metrics

Overview
Name With Ownermafintosh/webrtc-swarm
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2015-04-26 20:32:22
Pushed At2020-11-06 21:49:23
Last Commit At2017-11-01 23:02:23
Release Count17
Last Release Namev2.9.0 (Posted on 2017-10-14 22:05:44)
First Release Namev1.0.0 (Posted on 2015-04-26 13:56:56)
用户参与
Stargazers Count382
Watchers Count18
Fork Count60
Commits Count73
Has Issues Enabled
Issues Count19
Issue Open Count9
Pull Requests Count12
Pull Requests Open Count6
Pull Requests Close Count6
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private