Подскажите как правильно решить задачу. Перед тем как подключится к socket.io, нужно запустить свой middleware который вытаскивает данные из базы и записывает в сокет, нужно чтобы при событии коннекта, в сокете уже хранилась информация из базы. Проблема в том, что запрос к базе асинхронный, и при коннекте данных еще может не быть.
var express = require('express');
var app = express();
var mysql = require('mysql');
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.use(function (socket, next) {
// Как сделать запрос к mysql, так чтобы при коннекте к сокету они уже были прописаны в сокете?
socket.mysql_data="значение из базы";
next();
});
io.on('connection', function (socket) {
// socket.mysql_data должна уже содержать данные из базы
});