Crates.io | rustysignal |
lib.rs | rustysignal |
version | 2.0.2 |
source | src |
created_at | 2018-10-22 15:00:21.016815 |
updated_at | 2019-02-23 08:16:04.795252 |
description | A signaling server for WebRTC |
homepage | |
repository | https://github.com/rasviitanen/rustysignal |
max_upload_size | |
id | 91984 |
size | 20,437 |
A signaling server written in Rust for WebRTC that supports SSL. The signaling server is used to enable nodes on the network to exchange metadata in order to establish a peer-to-peer connection. This signaling server supplies the ability to set usernames on the network, and users have the ability to send messages to a specific peer, or broadcast messages to everyone on the network.
You need Cargo to be able to install this binary.
Install the signaling server without SSL (Suitable for local testing)
cargo install rustysignal
If you want to enable SSL, make sure to include it as a feature (Needed when using WebRTC in production)
cargo install rustysignal --features ssl
Once installed, you can start it by executing rustysignal 127.0.0.1:3012
in your terminal, which will start the server and listen to messages on the address 127.0.0.1:3012
.
If you are using SSL, you will need to provide your certificate.
rustysignal 127.0.0.1:3015 <CERT> <KEY>
When connecting to the network, i.e. Websocket, one should provide a username as a simple argument.
wss://signalserverhost?user=yourname
Peers can be found by:
To specify which type of method, specify it in your websocket send command in a field called protocol
.
var json_message = { protocol: "one-to-one", to: "receiver_username", "action": actiontype, "data": data };
ws.send(JSON.stringify(json_message));