У меня есть простенький чат с регистрацией и авторизацией, написанный на
Node.js и на
Socket.io. В данный момент у меня реализован только общий чат для всех зарегистрировавшихся пользователей. Все сообщения и пользователи хранятся в
PostgreSQL. Сейчас мне нужно сделать приватные диалоги между двумя пользователями.
Пока что я придумал только одну идею, как это можно реализовать. При переходе по определенному URL, к примеру: localhost:8080/im${id} и при отправлении сообщения, в БД в таблице "dialogues" создаётся диалог между двумя пользователями, куда передаётся первый собеседник, второй собеседник и ID последнего сообщения в этом диалоге:
INSERT INTO "public"."dialogues"("first_user", "second_user", "last_message") VALUES('3', '5', '24') RETURNING "id", "first_user", "second_user", "last_message";
Как мне получить/узнать URL, по которому перешёл пользователь и обработать этот запрос? Как мне обработать у второго пользователя получение диалога/сообщения через Socket.io? Для каждого такого диалога мне придётся создавать отдельную комнату или можно сделать как-то по-другому?