You scale WebSockets with Redis Pub/Sub by having each server instance subscribe to a shared Redis channel and broadcast messages to it when a client connects or sends data. This ensures all connected clients across all servers receive the same real-time updates.
// Server A: Publish message to Redis
redisClient.Publish(ctx, "chat-room", message)
// Server B: Subscribe to Redis channel
sub := redisClient.Subscribe(ctx, "chat-room")
for {
msg, _ := sub.Receive(ctx)
// Broadcast msg to local WebSocket connections
}