Давно не работал с socket.io, но, насколько помню, там есть такая штука, называемая
комнатой (room).
Для каждого диалога нужно создавать отдельную комнату (как бонус получаем групповой чат, как в том же vk.com). Id комнаты передавать с клиента (см. на url диалога в vk), на сервере проверять есть ли у юзера доступ к ней и, в зависимости от этого, подключать или нет.