Babysitter websocket

WebSocket implementation, connection management, scaling patterns, and real-time features.

install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/web-development/skills/websocket" ~/.claude/skills/a5c-ai-babysitter-websocket-61b0d0 && rm -rf "$T"
manifest: library/specializations/web-development/skills/websocket/SKILL.md
source content

WebSocket Skill

Expert assistance for implementing WebSocket real-time communication.

Capabilities

  • Implement WebSocket servers
  • Handle connection lifecycle
  • Build pub/sub patterns
  • Scale with Redis adapter
  • Implement reconnection logic
  • Handle authentication

Usage

Invoke this skill when you need to:

  • Add real-time features
  • Build chat applications
  • Implement live updates
  • Handle bidirectional communication

Server Implementation

import { WebSocketServer, WebSocket } from 'ws';
import { createServer } from 'http';

const server = createServer();
const wss = new WebSocketServer({ server });

const clients = new Map<string, WebSocket>();

wss.on('connection', (ws, req) => {
  const userId = authenticateConnection(req);
  clients.set(userId, ws);

  ws.on('message', (data) => {
    const message = JSON.parse(data.toString());
    handleMessage(userId, message);
  });

  ws.on('close', () => {
    clients.delete(userId);
  });
});

function broadcast(message: object) {
  const data = JSON.stringify(message);
  clients.forEach((client) => {
    if (client.readyState === WebSocket.OPEN) {
      client.send(data);
    }
  });
}

Best Practices

  • Implement heartbeat/ping-pong
  • Handle reconnection gracefully
  • Use message queues for scaling
  • Authenticate connections

Target Processes

  • real-time-features
  • chat-application
  • live-updates