20.1.0 • Published 4 years ago

sigver v20.1.0

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

Sigver

travis version

WebRTC Signaling server based on WebSocket for Netflux API, Javascript client and server side transport API for establishing peer to peer network.

Install

npm install -g sigver

Run

Usage: sigver [options]

Signaling server for WebRTC. Used by Netflux API (https://coast-team.github.io/netflux/)

Options:

  -V, --version           output the version number
  -h, --host <ip>         Select host address to bind to (default: 0.0.0.0)
  -p, --port <number>     Select port to use (default: 8000)
  -k, --key <file path>   Private key for the certificate.
  -c, --cert <file path>  The server certificate.
  -a, --ca <file path>    The additional intermediate certificate or certificates that web browsers will need in order to validate the server certificate.
  -h, --help              output usage information

Examples:

  $ sigver                       # Signaling server is listening on 0.0.0.0:8000
  $ sigver -h 192.168.0.1 -p 80  # Signaling server is listening on 192.168.0.1:80
  $ sigver --key ./private.key --cert ./primary.crt --ca ./intermediate.crt --port 443  # Signaling server is listening on 0.0.0.0:443

Server protocol

Server uses Protocol Buffers for encode/decode all messages.

syntax = "proto3";

message Message {
  oneof type {
    // INCOMING AND OUTCOMING MESSAGES
    // Server sends `heartbeat` message each 5 seconds and expects getting the
    // same message back. If after 3 tentatives still no response then close the
    // connection.
    // Server sends a heartbeat every 5 seconds and expects to receive it as well. After three missed heartbeats
    bool heartbeat = 1;
    // Any message to be exchanged between two peers.
    // For instance WebRTC offer, answer and candidates.
    Content content = 2;

    // INCOMING MESSAGE
    // Peer either wants to make sure that he is still a group member or wants
    // to become one.
    GroupData connect = 3;

    // OUTCOMING MESSAGE
    // Response to the connect request above. True if the peer is the only member
    // of the group or he is connected to at least one group member. Otherwise the
    // signaling server subscribes this peer to one of the group member (i.e. the
    // content message maybe exchanged) .
    bool connected = 4;
  }
}

message Content {
  uint32 senderId = 1;
  uint32 recipientId = 2;
  bool lastData = 2; // Indicates that this is the last data to be forwarded
  bytes data = 3; // Any data sent by the peer
}

message GroupData {
  uint32 id = 1; // Current peer id in the group
  repeated uint32 members = 2; // Peer's members view. Maybe an empty array.
}

Server may close the socket with the following codes:

  • ERR_KEY: 4741 // Inappropriate key format (e.g. key too long)
  • ERR_HEARTBEAT = 4742 // Heart-beats error
  • ERR_MESSAGE = 4743 // Any error due to message: type, format etc.
  • ERR_BLOCKING_MEMBER = 4744 // When only one member left in the group and new peers could not join via him.
20.0.4

4 years ago

20.1.0

4 years ago

20.0.3

4 years ago

20.0.2

6 years ago

20.0.1

6 years ago

20.0.0

6 years ago

19.1.2

6 years ago

19.1.1

6 years ago

19.1.0

6 years ago

19.0.0

6 years ago

18.0.0

6 years ago

17.0.1

6 years ago

17.0.0

6 years ago

16.0.0

6 years ago

15.1.0

6 years ago

15.0.4

7 years ago

15.0.3

7 years ago

15.0.2

7 years ago

15.0.1

7 years ago

15.0.0

7 years ago

14.0.0

7 years ago

13.1.3

7 years ago

13.1.2

7 years ago

13.1.1

7 years ago

13.1.0

7 years ago

13.0.1

7 years ago

13.0.0

7 years ago

12.0.1

7 years ago

12.0.0

7 years ago

11.0.0

7 years ago

10.1.0

7 years ago

10.0.1

7 years ago

10.0.0

7 years ago

9.1.0

7 years ago

9.0.1

7 years ago

9.0.0

7 years ago

8.1.0

7 years ago

8.0.2

7 years ago

8.0.1

7 years ago

8.0.0

7 years ago

7.6.4

8 years ago

7.6.3

8 years ago

7.6.2

8 years ago

7.6.1

8 years ago

7.6.0

8 years ago

7.5.1

8 years ago

7.5.0

8 years ago

7.4.2

8 years ago

7.4.1

8 years ago

7.4.0

8 years ago

7.3.0

8 years ago

7.2.0

8 years ago

7.1.1

8 years ago

7.1.0

8 years ago

7.0.0

8 years ago

6.0.0

8 years ago

5.0.0

8 years ago

4.0.0

8 years ago

3.0.0

8 years ago

2.0.0

8 years ago

1.0.0

8 years ago