
Scaling WebSockets with Claude Code: Redis Pub/Sub and Socket.io Adapter (2026-03-11)
Multiple WebSocket servers mean users on different servers can't receive each other's messages. Redis Pub/Sub solves this. Claude Code generates the correct architecture automatically from your CLAUDE.md. CLAUDE.md for WebSocket Scaling # WebSocket Rules - Use @socket.io/redis-adapter; messages via Redis Pub/Sub - Sessions stored in Redis (no sticky sessions required) - Monitor connection count per user - Max 5 connections per user - 30-minute timeout for inactive connections - JWT auth on handshake; invalid token = immediate disconnect createSocketServer() import { Server } from ' socket.io ' ; import { createAdapter } from ' @socket.io/redis-adapter ' ; import { createClient } from ' redis ' ; export async function createSocketServer ( httpServer : any ) { const io = new Server ( httpServer , { cors : { origin : process . env . ALLOWED_ORIGINS ?. split ( ' , ' ), credentials : true }, transports : [ ' websocket ' , ' polling ' ], }); const pubClient = createClient ({ url : process .
Continue reading on Dev.to
Opens in a new tab

