ОК, я предполагаю, что у вас есть возможность выяснить, какой это пользователь, из файла cookie для входа.Поскольку вы не показываете нам, как настроить cookie, вам придется написать собственный код, чтобы сделать это.
Когда происходит событие socket.io connection
, вы можете получить к cookie отначальный запрос соединения socket.io в socket.request.headers.cookie
.Предположим, у вас есть функция с именем getUserFromCookie()
, в которую вы передаете cookie-файл для входа, и она возвращает идентификатор пользователя, и мы предполагаем, что ваш cookie-файл для входа называется «login».Затем вы можете написать код, подобный следующему:
io.on('connection', socket => {
let userId = getUserFromCookie(socket.request.headers.cookie);
// join user to a room with the name of their userId
socket.join(userId);
});
Затем, в другом месте кода вашего сервера, куда вы хотите отправить сообщение определенному userId
, вы можете сделать это, просто выполнив следующее:
io.to(userId).emit("someMsg", someData);