Я пытаюсь узнать об использовании node.js и socket.io. Я использовал до PHP, и у меня возникли проблемы с пониманием того, как использовать обратные вызовы в node.js.node.js и socket.io как использовать обратный вызов?
У меня есть часть кода, присвоенного 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;
});
}
мне нужна вторая функция, чтобы просто вернуть "истина/ложь".
Когда я использовал «браузер», я просто ввел обратный вызов в другую внешнюю функцию, но здесь мне нужен доступ к объекту socket.io.
Поэтому я хотел бы иметь «if (validate_room (room))» здесь останавливается и ждет результата true/false.
Возможно, кто-то может указать мне, где я ошибаюсь в своих мыслях.
С наилучшими пожеланиями Марк
Спасибо. Ваше решение решает мою проблему. Теперь я понял, как использовать эти обратные вызовы. – marc234