Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build scalable WebSocket servers for real-time bidirectional communication. Use when enabling real-time bidirectional communication. Trigger with phrases like "build WebSocket server", "add real-time API", or "implement WebSocket".
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-01 | ✓→✗ | ▼ Worse | -78% | 0% |
Build scalable WebSocket servers for real-time bidirectional communication using the ws library, Socket.IO, or native framework WebSocket support. Handle connection lifecycle management, room/channel subscriptions, message broadcasting, heartbeat keepalive, and horizontal scaling with Redis pub/sub adapters.
ws or socket.io, or Python 3.10+ with websockets or FastAPI WebSocket, or Go with gorilla/websocketUpgrade header forwarding)/ws, /socket.io) and allowed origins.upgrade event, rejecting unauthorized connections before protocol switch.type, channel, payload, and correlationId fields for structured bidirectional communication.See ${CLAUDE_SKILL_DIR}/references/implementation.md for the full implementation guide.
${CLAUDE_SKILL_DIR}/src/ws/server.js - WebSocket server setup and upgrade handling${CLAUDE_SKILL_DIR}/src/ws/handlers/ - Per-message-type handler functions${CLAUDE_SKILL_DIR}/src/ws/rooms.js - Room/channel subscription management${CLAUDE_SKILL_DIR}/src/ws/registry.js - Active connection tracking registry${CLAUDE_SKILL_DIR}/src/ws/heartbeat.js - Ping/pong keepalive logic${CLAUDE_SKILL_DIR}/src/ws/adapters/redis.js - Redis pub/sub adapter for scaling${CLAUDE_SKILL_DIR}/tests/ws/ - WebSocket connection and messaging tests| Error | Cause | Solution | |-------|-------|----------| | 401 during upgrade | JWT token missing or expired in handshake query/headers | Reject upgrade with HTTP 401 before WebSocket protocol switch completes | | 1008 Policy Violation | Client sends malformed message or violates protocol | Send close frame with code 1008 and human-readable reason; log violation | | 1006 Abnormal Closure | Network interruption without close handshake | Detect via heartbeat timeout; clean up connection registry; notify room members | | Memory leak | Connection registry grows unbounded from stale entries | Implement heartbeat-based cleanup sweep every 60s; enforce max connections per server | | Message storm | Single client flooding messages beyond acceptable rate | Apply per-connection message rate limiting; disconnect abusive clients with 1008 |
Refer to ${CLAUDE_SKILL_DIR}/references/errors.md for comprehensive error patterns.
Chat application: Multi-room chat server where clients join named rooms, receive member presence updates, and see real-time message delivery with typing indicators via separate message types.
Live dashboard: Server pushes metric updates to subscribed dashboard clients every second, with initial state snapshot on connection and incremental deltas thereafter.
Collaborative editing: Operational transformation relay server that receives edit operations from clients, transforms against concurrent operations, and broadcasts resolved changes to all document subscribers.
See ${CLAUDE_SKILL_DIR}/references/examples.md for additional examples.
ws library: https://github.com/websockets/wsOther measured skills in the registry, with their headline benchmark lift.