Не отрабатывается socket.emit с клиента на сервере. Node.js & Socket.io
Имеется сервер-сайд код на node.js - socket.io
io = require('socket.io')(server);
io.on('connection', (socket) => {
console.log('One user connected: ' + socket.id);
socket.emit('giveName', socket.id);
io.on('userReg', (userName, userPwd)=>{
console.log(userName + " " + userPwd);
});
});
И клиент-сайд код socket.io
let socket = io.connect('http://localhost', {
reconnection: false
});
let userName = "";
//create name
socket.on('giveName', function(name) {
if((userName = prompt('Введи ник', "Anonim " + name)) && (userPwd = prompt('Введи пароль', ''))) {
socket.emit('userReg', 1, 1);
} else {
userName = "Anonim " + name;
return userName;
}
});
Хочу при подключении спросить логин, пароль у юзера, передать на сервер и уже в консоли вывести эти данные. Передаю их через socket.emit с клиента, обрабатываю io.on('userReg', ...), но ничего не работает. Условие с запросом ника и пароля работает, не работает именно передача и обработка этого события - 'userReg'. Кто поможет с данной проблемой, буду благодарен
Ответы (1 шт):
Автор решения: MERDY - нарезки Пятерки
→ Ссылка
Решено! На сервере делать внутренний обработчик событий не на io, а на socket. Вопрос закрыт