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 thewrtclibrary, 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 byRTCPeerConnectionconstructor)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