node.jsとsocket.ioの使用について学習しようとしています。私はPHPの前に使用していましたが、node.jsでコールバックを使用する方法を理解するのに問題があります。
私はsocket.ioに割り当てられたコードの一部を持っています
if (validate_room(room)) {
console.log('Room exist');
io.sockets.clients(room).forEach(
function (socket) {
console.log(socket.id);
});
//do some fucnction using socket interface
} else {
console.log('Room not exist');
//do other function using socket interface
}
ここで、io.socketsオブジェクトにアクセスする必要があることがわかります。
validate_roomの上の関数
function validate_room(room) {
mysql_connection.query('SELECT * FROM rooms WHERE room = ' + mysql_connection.escape(room), function(err, rows, fields) {
if (err)
throw err;
if (rows.length.toString() > 0) {
console.log('Validate room - true: ', rows.length.toString());
return true;
}
console.log('Validate room - false: ', rows.length.toString());
return false;
});
}
「true/false」を返すための2番目の関数が必要です。
「ブラウザ」を使用していたときは、別の外部関数へのコールバックを内部に配置しましたが、ここでは、socket.ioオブジェクトにアクセスする必要があります。
そこで、ここで「if(validate_room(room))」を停止して、結果がtrue/falseになるのを待ちます。
多分誰かが私を指摘するかもしれません、そこで私は私の考えを間違えます。
よろしくマーク