В объекте сокета подключенного пользователя можно хранить массив объектов {roomid, talkwith}.
roomid хранит идентификатор комнаты в бд, talkwith - ссылку на объект сокета-собеседника.
При создании комнаты или отправке сообщения в конкретный чат, сокету-собеседнику в массив прослшушиваемых чатов так же надо прописать пару {roomid, talkwith}, где в качестве talkwith будет ссылка на сокет-инициатор диалога