mcpField
W
websocket-implementation

websocket-implementation

github.com/aj-geddesDevelopment373665 installsUpdated 34w ago
Repository

About websocket-implementation

A skill for designing scalable WebSocket systems with connection management, message routing, and error handling. It is intended for developers building real-time communication, with guidance on horizontal scaling and implementation patterns.

Key features

  1. 01Connection lifecycle management
  2. 02Message routing and error handling
  3. 03Horizontal scaling support
  4. 04Node.js and Python server guides
  5. 05Browser client and protocol guides

Use cases

  1. 01Building real-time chat
  2. 02Sending live notifications
  3. 03Creating collaborative editing tools
  4. 04Streaming events to clients

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill websocket-implementation

After installing, type/websocket-implementationin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
browser-websocket-client.md
message-types-and-protocols.md
nodejs-websocket-server-socketio.md
python-websocket-server-aiohttp.md
scaling-with-redis.md
scripts/
validate-api.sh
templates/
api-scaffold.yaml

Details

From the project README

WebSocket Implementation

Table of Contents

Overview

Build scalable WebSocket systems for real-time communication with proper connection management, message routing, error handling, and horizontal scaling support.

When to Use

  • Building real-time chat and messaging
  • Implementing live notifications
  • Creating collaborative editing tools
  • Broadcasting live data updates
  • Building real-time dashboards
  • Streaming events to clients
  • Live multiplayer games

Quick Start

Minimal working example:

const express = require("express");
const http = require("http");
const socketIo = require("socket.io");
const redis = require("redis");

const app = express();
const server = http.createServer(app);
const io = socketIo(server, {
  cors: { origin: "*" },
  transports: ["websocket", "polling"],
  reconnection: true,
  reconnectionDelay: 1000,
  reconnectionDelayMax: 5000,
  reconnectionAttempts: 5,
});

// Redis adapter for horizontal scaling
const redisClient = redis.createClient();
const { createAdapter } = require("@socket.io/redis-adapter");

io.adapter(createAdapter(redisClient, redisClient.duplicate()));

// Connection management
const connectedUsers = new Map();

// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Node.js WebSocket Server (Socket.IO)Node.js WebSocket Server (Socket.IO)
Browser WebSocket ClientBrowser WebSocket Client
Python WebSocket Server (aiohttp)Python WebSocket Server (aiohttp)
Message Types and ProtocolsMessage Types and Protocols
Scaling with RedisScaling with Redis

Best Practices

✅ DO
  • Implement proper authentication
  • Handle reconnection gracefully
  • Manage rooms/channels effectively
  • Persist messages appropriately
  • Monitor active connections
  • Implement presence features
  • Use Redis for scaling
  • Add message acknowledgment
  • Implement rate limiting
  • Handle errors properly
❌ DON'T
  • Send unencrypted sensitive data
  • Keep unlimited message history in memory
  • Allow arbitrary room/channel creation
  • Forget to clean up disconnected connections
  • Send large messages frequently
  • Ignore network failures
  • Store passwords in messages
  • Skip authentication/authorization
  • Create unbounded growth of connections
  • Ignore scalability from day one

Comments

Markdown supported