[go: up one dir, main page]

Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

Signal-Fire/server

Repository files navigation

Signal-Fire Server

Signal-Fire Server is a WebRTC signaling server built for node.js.

A WebRTC signaling server communicates between peers to set up peer-to-peer audio/video and/or data channels. This allows your clients to communicate directly with each other.

Features

  • WebSockets powered WebRTC signaling server
  • There is a tailor-made browser client available as well
  • Automatic peer ID generation (also possible to plug in your own)
  • Automatic routing of messages
  • Supports one-to-one, one-to-many and many-to-many out of the box
  • Horizontally scalable by using registries

Install

You can help by reporting bugs or unexpected behavior. If you encounter anything, please open an issue, or even better, a pull request.

Install the module through npm:

npm i @signal-fire/server

Command Line Interface (CLI)

There is also a CLI available to start and manage multiple workers simultaneously. The CLI is a work-in-progress, but can already be used.

To install the CLI:

npm i -g @signal-fire/cli

To start a new worker on port 3003:

> signal-fire start -p 3003

See the CLI documentation to learn how to use the CLI.

Documentation

Click here to view the documentation.

Example

In this example we use the LocalRegistry in-memory registry from the @lucets/registry package.

The resulting app is in fact just a Luce application, which you can extend yourself. You'll also need to use your own HTTP server, of course.

import { Server } from 'http'

import createApp from './index'
import { LocalRegistry } from '@lucets/registry'

const registry = new LocalRegistry()
const app = createApp(registry)
const server = new Server()

server.on('upgrade', app.onUpgrade())
server.listen(3003, () => {
  console.log('Server listening on port 3003')
})

License

Copyright 2021 Michiel van der Velde.

This software is licensed under the MIT License.