gpt4 book ai didi

mysql - NodeJS + Socket.IO + Mysql

转载 作者:行者123 更新时间:2023-11-28 23:13:54 24 4
gpt4 key购买 nike

我使用 socket.io 是为了在用户加入我的网站时向用户发送消息,并使用客户端发送的 cookie 初始化他的详细信息。一段时间后,很少刷新执行我的查询停止工作。

这是我的代码:

io.on('connection', function(socket) {
var user = false;
socket.on('hash', function(hash, gameType) {
socket.join(gameType);
query('SELECT * FROM `users` WHERE `hash` = ' + pool.escape(hash), function(err, row) {
if((err) || (!row.length)) return socket.disconnect();
user = row[0];
users[user.steamid] = {
socket: socket.id,
balance: parseInt(row[0].balance)
}
socket.emit('message', {
balance: row[0].balance,
type: 'hello',
user: row[0].steamid
});
}
}

function query(sql, callback) {
console.log(callback);
if (typeof callback === 'undefined') {
callback = function() {};
}
pool.getConnection(function(err, connection) {
if(err) return callback(err);
logger.info('DB Connection ID: '+connection.threadId);
connection.query(sql, function(err, rows) {
if(err) return callback(err);
connection.release();
return callback(null, rows);
});
});
}

log4js.configure({
appenders: [
{ type: 'console' },
{ type: 'file', filename: 'logs/site.log' }
]
});
var logger = log4js.getLogger();

var pool = mysql.createPool({
connectionLimit : 10,
database: 'test',
host: 'localhost',
user: 'root',
password: 'pw'
});

process.on('uncaughtException', function (err) {
logger.trace('Strange error');
logger.debug(err);
});

最佳答案

我的猜测是您耗尽了连接池。

if(err) return callback(err); << after some erros here
connection.release(); << not released if there is an error

在这一行之前释放连接

关于mysql - NodeJS + Socket.IO + Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44728489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com