Мы делали так, запускается 2 процесса. 1-й запускает вебсокет сервер, 2-й подключается к редис и начинает слушать потоки (threads). Между двумя процессами поднимается канал связи. Клиент подключается к вебсокету, отправляет свой идентификатор. Вебсокет сообщает процессу с редисом какой поток слушать, при получении сообщеня в потоке, это сообщение ретранслируется по вебсокету клиенту. В любом месте системы просто отправляете сообщение в нужный поток, если клиент подключен он его получает.