jgamaraalv/delivery-loop · Archived

websocket-patterns

Build real-time WebSocket/Socket.IO systems — auth at the handshake, rooms/namespaces, presence, reconnection, Redis pub/sub scaling. Use for bidirectional messaging, live updates, chat, or notifications.

First seen Jul 4, 2026

Installation

$ npx skills add jgamaraalv/delivery-loop --skill websocket-patterns

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from jgamaraalv/delivery-loop · top by installs.

npx skills add jgamaraalv/delivery-loop

Browse all from jgamaraalv/delivery-loop

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 3
License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseMIT
More metadata
author
https://github.com/Jeffallan

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,886 B
  • docs SUMMARY.md 232 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

WebSocket Patterns

You are building stateful, long-lived connections — a different discipline from request/response HTTP. Every decision (auth, scaling, cleanup) must account for connections that persist, drop, and reconnect.

Core Workflow

  1. Analyze requirements — connection scale, message volume, latency needs.
  2. Design architecture — clustering, pub/sub, state management, failover.
  3. Implement — WebSocket server with authentication, rooms, events.
  4. Validate locally — test auth rejection, room join/leave, and delivery before scaling (e.g. npx wscat -c ws://localhost:3000).
  5. Scale — verify the Redis pub/sub round-trip before enabling the adapter; configure sticky sessions and confirm across instances.
  6. Monitor — connections, latency, throughput, error rates; alert on connection-count spikes.

Invariants

  • Sticky sessions for load balancing — WebSocket connections are stateful; requests must route to the same instance.
  • Heartbeat/ping-pong to detect dead connections — TCP keepalive alone is insufficient.
  • Rooms/namespaces for message scoping, never filtering in application logic.
  • Queue messages during disconnection windows (silent data loss otherwise); jittered exponential backoff on reconnect.
  • Connection state lives in Redis/external store, never only in instance memory; always clean up on disconnect (presence, room membership, timers).
  • Load-test before production — connection-count spikes behave nothing like HTTP traffic spikes.

References

Each file is loaded on demand — read one only when the task needs that depth (progressive disclosure).

  • references/implementation.md — working Socket.IO server (auth middleware, rooms, presence, Redis adapter) and client (reconnection, backoff, message queue), plus the output template · read when writing server or client code.
  • references/protocol.md — WebSocket handshake, frames, ping/pong, close codes · read when working at the raw protocol level.
  • references/scaling.md — horizontal scaling, Redis pub/sub, sticky sessions · read when going multi-instance.
  • references/patterns.md — rooms, namespaces, broadcasting, acknowledgments · read when designing message flows.
  • references/security.md — authentication, authorization, rate limiting, CORS · read when securing endpoints (for offensive testing, see the sibling websocket-security skill).
  • references/alternatives.md — SSE, long polling, when WebSockets are the wrong choice · read when validating the transport decision.