websocket-implementation

>

INSTALLATION
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill websocket-implementation
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

WebSocket Implementation

Table of Contents

  • [Overview](#overview)
  • [When to Use](#when-to-use)
  • [Quick Start](#quick-start)
  • [Reference Guides](#reference-guides)
  • [Best Practices](#best-practices)

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:

Guide

Contents

Node.js WebSocket Server (Socket.IO)

Node.js WebSocket Server (Socket.IO)

Browser WebSocket Client

Browser WebSocket Client

Python WebSocket Server (aiohttp)

Python WebSocket Server (aiohttp)

Message Types and Protocols

Message Types and Protocols

Scaling with Redis

Scaling 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
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card