Skip to content
Distributed WebRTC Signalling
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
.idea
docs
gradle/wrapper
src
.gitignore
Dockerfile
LICENSE
README.md fix #126 Dec 12, 2018
build.gradle
docker-compose.yml
gradlew
gradlew.bat
netlify.toml
settings.gradle

README.md

DWRTC - Distributed WebRTC Signalling

Sonar Rating CircleCI

DWRTC extends WebRTC with a decentralized connection setup (signaling). Users connect to different nodes on the Internet. These nodes are connected via a P2P network which stores the routing information. The connection setup messages are routed through this network. The WebRTC connection can then be used to send data, audio and video directly from web browser to web browser.

As a proof of concept, the project also includes a video call application using DWRTC to establish calls to a partner.


Project Page: dwrtc.net

WebSocket API documentation: docs.dwrtc.net/dwrtc/ch.hsr.dsl.dwrtc.websocket

Full Kdoc documentation: docs.dwrtc.net

JS documentation: src/main/resources/web/README.md

Run

To run DWRTC the easiest way is to use the Docker container:

docker run dwrtc/dwrtc

Use the environment variables mentioned in the options section to configure DWRTC.

Options

Options are loaded using Konfig. The priorities are:

  1. Command Line Properties overrides
  2. Environment Variables overrides
  3. Property file defaults.properties

Use the "dot"-syntax (http.port) for command line and property file, and "underscore"-syntax for environment variables (HTTP_PORT).

The options are:

  • Peer Port (Int): peer.port/PEER_PORT: port the TomP2P peer runs on
  • Webserver IP (String): http.ip/HTTP_IP: the IP the web server binds to (e.g. "127.0.0.1", "localhost", "0.0.0.0")
  • Webserver Port (Int): http.port/HTTP_PORT: the port the web server binds to
  • Bootstrap Peer (comma-separated list of HOST:PORT pairs): bootstrap.peer/BOOTSTRAP_PEER the list of peers to bootstrap to (e.g. "1.1.1.1:4000,2.2.2.2:3000")

Local Usage

$ docker-compose up -d
$ docker-compose ps

    Name               Command           State                        Ports
-------------------------------------------------------------------------------------------------
dwrtc_node1_1   java -jar /app/app.jar   Up      0.0.0.0:PORT1->7000/tcp, 0.0.0.0:32770->7532/tcp
dwrtc_node2_1   java -jar /app/app.jar   Up      0.0.0.0:PORT2->7000/tcp, 0.0.0.0:32768->7532/tcp

Connect to localhost:PORT1 for node1 and localhost:PORT2 for node2 via a web browser. You can also connect to the TomP2P ports (32768/32770 in this case) to bootstrap any instance running outside of this network.

You can’t perform that action at this time.