bonfires

Enables WebRTC Peers to act as Signaling Servers

Bonfires.js

WebRTC/RTCPeerConnection signaling library to allow browser-based users to act as signaling servers for other peers.

Bonfire allows you to connect peers to other peers using existing peer connections. It won't create a peer network for you. Instead, it gives you the power to easily create your own network without having to worrying about the signaling process.

Bonfire allows you to do 3 things:

  1. Request peer signaling from another peer
  2. Listen for signaling requests from other peers
  3. Listen for connection requests from a signaling peer
  • If you use NPM, you can download Bonfires with this command: npm install bonfires
  • The main Bonfire file is bonfire.js
  • If you are using SignalFire.js, you will also need to include the following scripts that will be downloaded by NPM:
    1. SignalFire.js/client/src/signalfire-client.js
    2. SignalFire.js/client/src/adaptor.js
    3. SignalFire.js/client/src/socket.io.js

These files can also be found in the SignalFire.js GitHub repo: SignalFire.js

Bonfire is intended to easily integrate with SignalFire.js, which is used in the example below:

var mySignalingOptions = {
 
// A function that will be called when another peer calls `requestPeer` 
onSignalingRequestfunction(configData){
// Must return a datachannel. The requesting peer will then be connected to the 
// peer at the other end of the datachannel 
return datachannelOfAnotherPeer;
},
respondingConnectorfunction(newPeerConnectionconfigDatacallback){
var signalFireOptions = {
// newPeerConnection must be passed as the SignalFire `server` option. 
// This automates the RTCPeerConnection setup 
server: newPeerConnection,
 
// there are more required options for SignalFire.js 
// More info can be found at: https://github.com/traviswimer/SignalFire.js 
};
theSocket = signalfire.connect(signalFireOptions, function(theConnection){});
},
initiatingConnectorfunction(newPeerConnectionconfigDatacallback){
var signalFireOptions = {
// newPeerConnection must be passed as the SignalFire `server` option. 
// This automates the RTCPeerConnection setup 
server: newPeerConnection,
// there are more required options for SignalFire.js 
// More info can be found at: https://github.com/traviswimer/SignalFire.js 
};
theSocket = signalfire.connect(signalFireOptions, function(theConnection){});
}
};
var bonfireObject = bonfire(datachannelOfAPeer, mySignalingOptions);
bonfireObject.requestPeer({
// optional parameters to pass to the signaling server 
});

To get a better understanding of how to use Bonfire, try out the code in the "examples" directory.