Nonchalantly Performs Magic

    webrtc-signal-http-capacity

    1.2.0 • Public • Published

    webrtc-signal-http-capacity

    Build Status

    Deploy to Azure

    webrtc-signal-http capacity management extension ♻️ ⛽️

    logo gif

    This adds an additional signal message to help servers communicate capacity constraints. Once capacity is reached, clients will no longer see said server in the PeerList.

    Getting started

    Learn about the RESTful API extension via the OpenAPI doc (raw or hosted) to understand how clients should change their interaction with the service when using this extension.

    To install a signal server including this extension that can be used in a cli npm install -g webrtc-signal-http-capacity. To run it, just use webrtc-signal-http-capacity from the command line, using the PORT environment variable to configure it's listening port.

    To consume this server in combination with webrtc-signal-http and other possible extensions, npm install webrtc-signal-http webrtc-signal-http-capacity and then run some code like the following:

    const express = require('express')
    const signalRouterCreator = require('webrtc-signal-http')
    const capacityRouterCreator = require('webrtc-signal-http-capacity')
    
    const app = express()
    const capacityRouter = capacityRouterCreator()
    const signalRouter = signalRouterCreator({
        peerList: capacityRouter.peerList
    })
    
    app.use(signalRouter, capacityRouter)
    
    app.get('/new-endpoint', (req, res) => { res.send('hello') })
    
    app.listen(process.env.PORT || 3000)
    

    RESTful API

    To understand the base API provided by webrtc-signal-http, look at the docs for that project. This documents the API endpoints this extension adds. ✨

    PUT /capacity

    Takes peer_id, value query parameters

    Indicates server capacity has changed. This endpoint is expected to be called at by the server as capacity changes (usually as peers connect). The value parameter should be an integer approaching 0. 0 indicates the server is full. The response will be empty.

    PUT http://localhost:3000/capacity?peer_id=1&value=10 HTTP/1.1
    Host: localhost:3000
    
    =>
    
    HTTP/1.1 200 OK
    Content-Length: 0
    

    Extension API

    To understand the base API provided by webrtc-signal-http, look at the docs for that project. This documents the javascript API this extension adds. ✨

    module.exports

    This is the exported behavior, you access it with require('webrtc-signal-http-capacity')

    [Function] - takes a CapacityOpts indicating configuration options. Returns an express router object.

    router.peerList

    [Object] - can be used to retrieve a PeerList from the express router. Returns a CapacityPeerList object.

    CapacityPeerList

    [Class] - Extends PeerList with the ability to have full peers (that aren't visible in listings).

    CapacityOpts

    [Object] - represents the options that can be given to the capacity creator

    peerList

    [Object] - An existing PeerList to base our CapacityPeerList on.

    License

    MIT

    Keywords

    Install

    npm i webrtc-signal-http-capacity

    DownloadsWeekly Downloads

    2

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    1.46 MB

    Total Files

    9

    Last publish

    Collaborators

    • b3ngr33ni3r