Я обнаружил проблему.
На сервере я изменил:
var io = require('socket.io').listen(8080);
на
var io = require('socket.io', { rememberTransport: false, transports: ['WebSocket', 'Flash Socket', 'AJAX long-polling'] }).listen(8080);
, что заставляет сервер использовать либо WebSockets, FlashРозетки или длинные опросы.Он попытается использовать их в таком порядке.Параметр RememberTransport заставляет сервер и клиент забыть, какое соединение оно использовало последним, и попытаться установить соединение с помощью вышеупомянутых «транспортов».
На стороне клиента я просто сделал то же самое.Я добавил:
{ rememberTransport: false, transports: ['WebSocket', 'Flash Socket', 'AJAX long-polling']}
в конструктор сокетов.Так это выглядело так:
var socket = io.connect('http://localhost:843', { rememberTransport: false, transports: ['WebSocket', 'Flash Socket', 'AJAX long-polling']});
Теперь, похоже, работает отлично.
Спасибо, ребята.