Nighttime Pachinko Marathon

    signalfire

    0.0.6 • Public • Published

    SignalFire.js

    An RTCPeerConnection signaling library/npm module. It does the signaling and then gets out of your way.

    Why do I need this?

    There are other open-source signaling options, but many create a layer of abstraction around the RTCPeerConnection object. Although this can be useful, it can also be restrictive, especially when the WebRTC specification is still in flux.

    The purpose of SignalFire.js is to:

    • Only focus on signaling
    • Give developer control before signaling
    • Return complete control to the developer after signaling

    Installation

    Server-side

    1. npm install signalfire
    2. use require('signalfire') in node

    Client-side

    • The main script is SignalFire.js / client / src / signalfire-client.js
    • adaptor.js and socket.io.js are necessary dependencies in the same directory

    Basic Usage Example

    SignalFire consists of a client-side script and a node module for signaling. Each is show below:

    Client-side:

    var options = {
        // Server to connect to
        server: "http://localhost:3333",
     
        // That will be called each time a new peer connection is created
        connector: function(startSignaling, isAnswer){
            var newConnection = new RTCPeerConnection(
                {
                  "iceServers": [{ "url": "stun:stun.l.google.com:19302" }]
                }
            );
     
            startSignaling(newConnection);
        },
     
        // Callback function for when the signaling process is complete
        onSignalingComplete: function(rtcPeerConnection){
            // Do something
        }
    };
     
    var conn = signalfire.connect(options,function(){
        conn.emit('askServerForPeer',{
            data: someData
        });
    });

    Server-side:

    var signalfire = require('signalfire');
     
    var sf=signalfire.listen(3333,function(peer){
        peer.socket.on('askServerForPeer', function(data){
            peer.connectToPeer(anotherPeer);
        });
    },function(error){
        console.log('something went wrong');
    });

    API Documentation

    Server-side

    Signalfire Object

    Load module with require('signalfire')

    listen( port, successCallback, failCallback )

    Tells the server to listen on a certain port for socket connections to be used for peer connections. Returns a socket.io manager object.

    • port (number) - Server port number to listen on.
    • successCallback (function) - Callback function to be returned when a user successful creates a socket connection with the server.
    • failCallback (function) - Callback function to be returned when a user fails to create a socket connection with the server.
      • Returns an error message (string)

    peer object - server

    socket

    Contains a socket.io object

    connectToPeer( peer )

    Connects the peer calling the method to a specified peer

    getPeerId()

    Returns the unique ID for the peer object.

    Client-side

    connect( options, successCallback, failCallback )

    Creates a socket connection with the specified server. Returns a socket.io manager object.

    • options (object) - Setup options
      • server (string || object) - Required. Specifies the server to connect to. server: "http://localhost:3333" or specify an object with a socket-like API (on, emit, ...).
      • connector ( function(startSignaling, isAnswer) ) - Required. A function that creates a new RTCPeerConnection object. The startSignaling function must be called to initiate signaling.
        • startSignaling(peerConnection) - A callback function for that initializes the signaling process. Takes a single parameter that must be an RTCPeerConnection object.
        • isAnswer - A boolean value. True if the client is sending an RTCPeerConnection answer. False if the client is sending an RTCPeerConnection offer.
      • onSignalingComplete (function) - Callback function for when the signaling process has successfully created a peer connection.
      • onSignalingFail (function) - Callback function for when there is an error in the signaling process.
    • successCallback (function) - Callback function to be returned when a user successful creates a socket connection with the server.
    • failCallback (function) - Callback function to be returned when a user fails to create a socket connection with the server.
      • Returns an error message (string)

    peer object - client

    socket

    Contains a socket.io object

    Keywords

    none

    Install

    npm i signalfire

    DownloadsWeekly Downloads

    2

    Version

    0.0.6

    License

    none

    Last publish

    Collaborators

    • traviswimer