Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

webrtc-signal-http-heartbeat

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webrtc-signal-http-heartbeat

webrtc-signal-http heartbeat timeout extension

  • 1.0.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

webrtc-signal-http-heartbeat

Build Status

Deploy to Azure

webrtc-signal-http heartbeat timeout extension :heart: :timer_clock:

logo gif

This adds an additional signal message to help prevent stale peers appearing as legitimate, by requiring clients to send this message at a defined interval. Clients that stop sending the message are removed from 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-signal. To run it, just use webrtc-signal-http-heartbeat from the command line, using the PORT environment variable to configure it's listening port, WEBRTC_HEARTBEAT_MS to configure the heartbeat timeout, and WEBRTC_HEARTBEAT_GC_MS to configure the gc interval.

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

const express = require('express')
const signalRouterCreator = require('webrtc-signal-http')
const heartbeatRouterCreator = require('webrtc-signal-http-heartbeat')

const app = express()
const heartbeatRouter = heartbeatRouterCreator()
const signalRouter = signalRouterCreator({
    peerList: heartbeatRouter.peerList
})

app.use(signalRouter, heartbeatRouter)

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:

GET /heartbeat

Takes peer_id query parameter

Indicates a peer is still actively connected and able to signal. This endpoint is expected to be called at an interval defined by the extension (default 30s). The response will be empty.

GET http://localhost:3000/heartbeat?peer_id=1 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-heartbeat')

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

router.peerList

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

TimeoutPeerList

[Class] - Extends PeerList with the ability to have peers timeout.

refreshPeerTimeout

[Function] - Takes id (a Number). Resets the timeout on a peer, keeping it active. Returns nothing.

cancelGc

[Function] - Takes nothing. Stops the GC from running. Returns nothing.

HeartbeatOpts

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

timeoutPeriod

[Number] - the timeout period in ms after which a client will be marked as stale, and cleaned up when the "gc" runs. Default 30s

gcInterval

[Number] - the interval in ms at which the gc will run, removing stale clients. Default 15s

License

MIT

Keywords

FAQs

Package last updated on 24 Jan 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc