Skip to content

Main#204

Closed
levibliz wants to merge 3 commits into
devfrom
main
Closed

Main#204
levibliz wants to merge 3 commits into
devfrom
main

Conversation

@levibliz

Copy link
Copy Markdown
Contributor

merge

bokkykennedy79-spec and others added 3 commits July 22, 2026 16:20
…cs, and WebSocket upgrade detection on shared port

Implement an HTTP server as the primary listener using Node.js built-in http
module, with WebSocketServer running in noServer: true mode. Incoming requests
are inspected for the Upgrade header to correctly route WebSocket upgrades vs
plain HTTP requests.

Endpoints:
- GET /healthz: Liveness probe returning 200 with uptime (503 during shutdown)
- GET /readyz: Readiness probe returning 200 with connection/room counts
- GET /metrics: Prometheus exposition format with 7 metrics (connections,
  rooms, messages, rate limit rejections, auth failures, heap usage, event
  loop lag)

Features:
- Protocol detection on shared port (HTTP vs WebSocket upgrade)
- Event loop lag measurement via setTimeout(0) drift every 5 seconds
- Atomic metrics counters for message types, auth failures, and rate limits
- Graceful shutdown integration: markShuttingDown sets probes to 503, then
  closes both WSS and HTTP server
- wss.address() patched to return httpServer.address() for test compatibility

Closes #199
feat: Co-located HTTP server with health checks, Prometheus metrics, and WebSocket upgrade detection (#199)
@levibliz levibliz closed this Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants