у меня есть этот код здесьSocket.io испускают не называется
io.on("connection", function(socket){
//other methods where emit works
socket.on("login", function(data) {
try {
pg.connect(conString, function(err, con) {
var query = con.query("SELECT * FROM accounts WHERE username" +
"='" + data.usn + "';");
query.on("row", function(row, result) result.addRow(row); });
query.on("end", function(result) {
if (sha512(data.pwd, result.rows[0].salt).hash ===
result.rows[0].password) {
socket.emit("loginResponse", { status: "Success" });
console.log("I GOT UP TO HERE WITHOUT EMITTING! WTF?");
console.log(sha512(data.pwd,result.rows[0].salt).hash);
console.log(result.rows[0].password);
}
});
});
} catch (ex) { console.log(ex); }
});
});
Очевидно, что на стороне клиента, у меня есть что-то вроде этого:
socket.on("loginResponse", function(data) {
alert(data.status);
});
Однако, когда я пытаюсь войти успешно, мой сервер ничего не передает клиенту, т. е. я увижу печатные строки на моем терминале, но клиент не получит ответа от сервера. Я был озадачен этим. У меня есть еще одна функция, которая касается драйвера PostgreSQL и успешно испускается, но этого нет. Кто-нибудь знает, почему это так?
Я не вижу там каких-либо испусканий ... только функция on, которая испускает внутри ... плюс на стороне клиента вам нужно влезать var societ = io.connect(); – amanuel2
Да, у меня уже есть объявление в клиентском коде, который подключается к моему серверу. Я пытаюсь испустить loginResponse, но он не вызывается. – goodpoutine
Когда происходит вход в систему? –