Здравствуйте.
Делаю сайт с использованием node.js с пакетами express и socket.io.
Что то вроде такого:
app.get('/rules', function(req, res)
{
fs.readFile("C:/Apache24/htdocs/site/rules.html", "utf-8", function(err, data)
{
if(err) throw err;
res.send(data);
});
});
и так под каждую страницу.
Есть у меня еще socket.io на сервере, пока только в таком виде:
io.on('connection', function (socket)
{
console.log("New user connected!");
socket.on('disconnect', function()
{
console.log('User disconnected!');
});
});
Мне нужно было добавить авторизацию через steam, и я ее сделал с помощью
этого пакета.
Теперь сам вопрос.
Авторизация через steam происходит строго через express при этом socket.io там вообще не при делах.
После авторизации куда бы пользователь не перешел, инфу о нем всегда можно будет найти в первом параметре callback функции от express маршрутизатора в виде: req.user. Но socket io ничего о нем не знает и работает вообще отдельно.
Я бы хотел связать socket.io соккет с id юзера (остальная инфа о нем будет хранится в бд) в виде ассоциативного массива что бы по id пользователя я мог спокойно отправлять пакеты ему через socket.io. Но не знаю как это сделать потому что socket.io и express вообще не пересекаются между собой в моем приложении. Express знает все про пользователя который авторизирован но не знает его socket.io соккет. Socket.io знает соккет пользователя но понятия не имеет какой пользователь - владелец этого соккета.