【发布时间】:2016-09-05 09:46:20
【问题描述】:
我有一个带有套接字 io 和 nodejs 的套接字服务器和一个作为客户端的 android 应用程序,这里是服务器代码:
var server = require('http').createServer();
var io = require('socket.io')(server);
var UserId;
var RequestCode;
io.sockets.on('connection', function(socket){
socket.on('data', function(data) {
var d = JSON.parse(data);
UserId = d.user_id;
RequestCode = d.request_code;
});
var mj = setInterval(function(){
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '***',
database : '***'
});
connection.connect();
connection.query("SELECT * FROM buffer WHERE user_id = " + UserId + " AND request_code = " + RequestCode + ";"
,function(err, rows, fields) {
for(i = 0; i < rows.length; i++)
{
var jj = rows[i]['pm'];
socket.emit('answer', jj);
executeQuery("DELETE FROM buffer WHERE id = " + rows[i]['id']);
}
});
connection.end();
}, 1000);
});
function executeQuery(sql)
{
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '***',
database : '***'
});
connection.connect();
connection.query(sql);
connection.end();
}
server.listen(8087, '***);
我的服务器基本上是这样做的:当客户端连接并发送数据时,它会接收数据并将其答案插入到表中......我有一个计时器,它每秒检查一次表并查看是否有任何数据任何客户端(如果有)它使用 emit 将该数据发送给用户,然后 .当连接一个客户端时,一切正常,但是: 当多个客户端连接到服务器时,发出的东西有时就像它有时会为磨损的客户端发送数据一样工作,有时它会正确发送它客户端真的很简单,我确定它不是客户端我在这里错过了什么?或者更好的解决方案是什么?
【问题讨论】:
标签: android node.js socket.io server