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

Dependencies (2)

Dev Dependencies (2)

Package Sidebar

Install

npm i webrtc-signal-http-capacity

Weekly Downloads

0

Version

1.2.0

License

MIT

Unpacked Size

1.46 MB

Total Files

9

Last publish

Collaborators

  • b3ngr33ni3r