День добрый.
Ситуация такая, пхп генерирует токен для юзера, который записывается в базу Основной информацией по аутентификации пользователя в ноде является ид + токен. Они отправляются вместе с подключением в сокет.ио (из хендшейка берет) и соответственно нода лезет в базу для проверки есть ли вообще такой пользователь и какие у него права или данные.
Была мысль просто хранить массив пользователей уже в самой ноде, создав просто массив и после каждого обращения к базе, забивать этот массив с инфой о пользователей. Но нода тогда сама превратится в базу данных и не вижу возможности обновить эту информацию при выполнении пхп скрипта с пользователей (например забанить).
Ну и вопрос из сабжа. Насколько оправдано передавать данные пользователя из пхп в ноду через мемкеш ? Либо же проще оставить подключение к базе ?
Большинство запросов формата:
SELECT `name`,`age`,`something`
FROM `users`
INNER JOIN `more info` on (`id`=`id`)
...
WHERE `id`=1 AND `token`='fsdjfkkasfhklasdjfhlkasdfjhalsdk' LIMIT 1
Уточню немного вопрос. Что в таком случае будет менее накладно по памяти и быстродействию ? При условии, что в ноде используется пул подключений к mysql.
И еще тогда пример добавлю при использовании чата. Подключается пользователь как описал выше, через сокетио добавляется в прослушку на on.('chat'), и перед отправкой или получением сообщения, каждый раз проверяет в базе не изменились ли данные через socket.handshake.userid и socket.handshake.token