pedrobarbeiro/ws-server

By pedrobarbeiro

Updated 3 months ago

Minimal WebSocket relay for drone fleet real-time communication.

Image
Message queues
Internet of things
0

194

pedrobarbeiro/ws-server repository overview

ws-server-lite

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.

How it works

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:

RoleIDBehavior
droneanyTelemetry forwarded to platform (ID 0) and LOG
platform0Commands routed to target drone by userId field
loggerLOGReceives all telemetry, store events, and TX/RX logs

Connection

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>

In-memory Store

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>" }

HTTP Endpoints

MethodPathDescription
GET/clientsList all connected client IDs
GET/store/:idGet the current store for a drone

Usage

docker run -d -p 8080:8080 pedrobarbeiro/ws-server
Custom port
docker run -d -e PORT=9000 -p 9000:9000 pedrobarbeiro/ws-server

Environment Variables

VariableDefaultDescription
PORT8080Listening port

Tag summary

Content type

Image

Digest

sha256:7ee3a5118

Size

56.4 MB

Last updated

3 months ago

docker pull pedrobarbeiro/ws-server