Эта проблема возникает на стороне клиента моего приложения.Я столкнулся с проблемой, при которой событие socket.on не срабатывает в моем приложении Node.Обычно это происходит, когда клиент впервые загружает сайт.При загрузке вкладки обычно содержат данные, которые были динамически сгенерированы в Javascript, однако, поскольку событие socket.on не попадает, это содержимое не загружается, в результате чего вкладки остаются пустыми (базовый файл Pug / Jade все еще рендерится- просто нет динамического контента).Обновление страницы обычно устраняет проблему, и сокеты снова начинают получать данные.
Прямое сообщение об ошибке не выводится, событие socket.on просто не срабатывает.Это также, кажется, решает себя, как только страница была перезагружена и не происходит 100% времени.
Это еще более необычно, так как при запуске моего Node-сервера в режиме отладки он показывает socket.io-parser, кодирующий данные, и socket.io-client, записывающий данные, что означает, что они испускаются,просто не был обнаружен socket.on на моей стороне клиента.
Обратите внимание, что это было упрощено до
io.sockets.on('connection', function (client) {
sendExampleData();
});
function sendExampleData() {
mysqlFunc.getOrderData(function(rows){
io.emit('example_data', rows);
})
}
socket.on('example_data', function (rows) {
console.log(rows);
}
Iожидайте, что при загрузке страницы данные будут отправлены, и событие socket.on получит эти данные, готовые к обработке.В настоящее время, хотя и происходит не каждый раз, socket.on не используется, а данные не собираются.
Нет ничего необычного, пока сервер работает в режиме отладки, и любые идеи будут чрезвычайно полезны.Если есть какая-либо другая информация, которая будет полезна для устранения этой проблемы, пожалуйста, дайте мне знать.
Заранее спасибо!