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 thewrtc
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.
Additional optional keys can be passed through to the underlying simple-peer instances:
channelConfig
- custom webrtc data channel configuration (used bycreateDataChannel
)config
- custom webrtc configuration (used byRTCPeerConnection
constructor)stream
- if video/voice is desired, pass stream returned fromgetUserMedia
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