Beep backend handling WebRTC signaling.
To run this service securely means to run it behind traefik forwarding auth to backend-auth
Docker:
export PORT=1837 # Or whatever port number you like
docker build -t backend-signal . && docker run -it backend-signal
Not hipster (requires node.js):
export PORT=1837 # Or whatever port number you like
npm install
node index.js
Unless otherwise noted, bodies and responses are with Content-Type: application/json
.
Contents |
---|
Subscribe to SSE |
Get a user's devices |
Post data to a user's device |
GET /subscribe
Subscribe a user's device to the signaling service. Recommended usage:
const es = new EventSource(`${host}/subscribe/${user}/device/${device}`);
es.onmessage = (e) => {
const data = e.data;
// Do whatever with data
};
Name | Description |
---|---|
X-User-Claim | Stringified user claim, populated by backend-auth called by traefik |
An EventSource stream.
Code | Description |
---|---|
401 | Invalid user claims header. |
GET /user/:user/devices
Get a list of device IDs associated with the specified user. One can then use the IDs to post data to individual devices.
Name | Type | Description | Required |
---|---|---|---|
user | String | Target user's ID. | ✓ |
List of device IDs. Can be an empty list.
[ <id>, <id2>, ... ]
POST /user/:user/device/:device
Post data to the specified device of the specified user.
Name | Type | Description | Required |
---|---|---|---|
user | String | Target user's ID. | ✓ |
device | String | Target device's ID. | ✓ |
Name | Type | Description | Required |
---|---|---|---|
data | String | Data to be sent. | ✓ |
Empty body.
Code | Description |
---|---|
400 | No data to be sent was supplied. |
404 | The specified user/device's connection could not be found. |