How about load balancing of node.js and multiple node.js servers.
use something like redis to store data and process message passing. See Article.
Then each client lives on the node.js server, you don't care.
Each message is processed by the node.js server (you don't care).
Each message is sent to redis by the node.js server, which processes this incoming message.
Then each node.js server selects it and pushes it to all clients connected to this server and this chat room.
You will need a little black magic to send messages from one socket.io connection on your load balancer to tcp sockets on several node.js servers.
source share