Я использую socket.io с последней версией node.js и socket.io показывает любопытное поведение: Событие connect срабатывает на стороне клиента, но не на сервере стороны в первый раз. После перезагрузки или просто загрузки страницы снова событие было запущено как на стороне клиента, так и на стороне сервера правильно. Что случилось (с моим кодом?)?Socket.io запускает событие сразу после второго подключения
// Client
var socket = io.connect(window.location.protocol + '//' + window.location.hostname, {
'sync disconnect on unload': true
});
socket.on('connect', function() {
alert("Connect");
// Do other stuff
});
-
// Server
io.sockets.on('connection', function(socket) {
console.log("connection");
io.sockets.on('connect', function(socket) {
console.log("connect");
});
});
работы сервера и загрузки страницы: Клиент запускает предупреждение, сервер просто регистрирует connection
. Теперь загружая страницу снова, она регистрирует как connection
, так и connect
.
Обновление: Похоже, что в самом первом соединении возникают такие проблемы, после чего он работает везде, как ожидалось. Сразу после запуска каждого сервера узлов (re) это поведение появляется. Примечание: сам узел предоставляет страницу, на которой используется socket.io, и которая работает даже при первом запросе, поэтому исключить проблему узла. Браузер также не имеет значения, он одинаковый в каждом браузере.