Как насчет балансировщика нагрузки node.js и нескольких серверов node.js за ним.
используйте что-то вроде redis для хранения данных и обработки передачи сообщений. Смотрите эту статью
Тогда каждый клиент живет на сервере node.js, вам все равно, какой.
Каждое сообщение обрабатывается сервером node.js (вам все равно, какое).
Каждое сообщение отправляется в redis сервером node.js, который обрабатывает это входящее сообщение.
Затем каждый сервер node.js забирает его и отправляет всем клиентам, подключенным к этому серверу и к этой комнате чата.
Вам понадобится немного черной магии для передачи сообщений из единственного соединения socket.io на вашем балансировщике нагрузки в tcp-сокеты нескольких серверов node.js.