我目前正在为我的应用程序上的所有用户使用单个 mysql 连接。我想开始使用一个池(它应该更优化,对吧?)但我有一个“结构”问题:createPool方法只适用于回调,我不明白如何将连接传递给 socket.io事件。
我的意思是,在 server.js 文件中有一个建立连接的点
pool.getConnection(function(err, connection) {
//I'm supposed to use the connection here
}
然后有一个套接字事件被“捕获”的点
io.sockets.on('connection', function(socket){
socket.on('userLogin', function(id_user){
//I need the connection here to run a query with 'id_user'!
});
});
在第二点我需要连接,然后我可以运行
connection.query('SELECT bla bla bla...', function(err, data){
connection.end();
});
我认为这是为每个连接到应用程序的用户建立不同连接的唯一方法,但我真的不明白如何将连接“传递”到 socket.io“空间”。