webrtc-signal-http-capacity
v1.2.0
Published
webrtc-signal-http capacity management extension
Downloads
7
Readme
webrtc-signal-http-capacity
webrtc-signal-http capacity management extension :recycle: :fuelpump:
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. :sparkles:
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. :sparkles:
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