ws-server
Minimal WebSocket relay for drone fleet real-time communication.
194
A minimal WebSocket relay server for the dboids drone fleet system. Handles real-time bidirectional communication between drones, a platform controller, and an optional logger client.
Clients identify themselves via the dboidsid header (or dboidsID query param) and a role
header (or role query param). The server routes messages based on role:
| Role | ID | Behavior |
|---|---|---|
drone | any | Telemetry forwarded to platform (ID 0) and LOG |
platform | 0 | Commands routed to target drone by userId field |
| logger | LOG | Receives all telemetry, store events, and TX/RX logs |
Connect via WebSocket and pass identity through headers or query parameters:
ws://<host>:8080/?dboidsID=<id>&role=<role>&protocolVersion=<version>
Or via headers:
dboidsid: <id>
role: drone | platform
protocolVersion: <version>
Drones can upsert and clear keyed data in a per-drone store:
// Upsert
{ "message": "store", "userId": "<droneId>", "battery": 87, "gps": { "lat": 0, "lng": 0 } }
// Clear a key
{ "message": "clear", "userId": "<droneId>", "key": "battery" }
// Clear all
{ "message": "clear", "userId": "<droneId>" }
| Method | Path | Description |
|---|---|---|
| GET | /clients | List all connected client IDs |
| GET | /store/:id | Get the current store for a drone |
docker run -d -p 8080:8080 pedrobarbeiro/ws-server
docker run -d -e PORT=9000 -p 9000:9000 pedrobarbeiro/ws-server
| Variable | Default | Description |
|---|---|---|
PORT | 8080 | Listening port |
Content type
Image
Digest
sha256:7ee3a5118…
Size
56.4 MB
Last updated
3 months ago
docker pull pedrobarbeiro/ws-server