socket.io не отправляет сообщение о соединении клиенту на flashsocket
Я использую сервер node.js с плагином socket.io для подключения между двумя клиентами (flash и js) на разных устройствах
для интеграции флэш-памяти я использую библиотеку FlashSocket.IO и имею io.set('transports', ['websocket', 'flashsocket']);
в моем файле.js сервера
хотя на большинстве компьютеров все работает нормально - на некоторых компьютерах (не знаю, насколько это актуально, но оба компьютера, которые я проверял, работают под управлением Windows 8), - соединение не работает
при включении отладки на сервере я вижу, что для работающих клиентов сервер отправляет 1::
сообщение и для неработающих клиентов - это не
это часть журнала для рабочего клиента:
debug - client authorized
info - handshake authorized 8JVqPB6MuJYJeMR3RVN_
debug - setting request GET /socket.io/1/flashsocket/8JVqPB6MuJYJeMR3RVN_
debug - set heartbeat interval for client 8JVqPB6MuJYJeMR3RVN_
debug - client authorized for
debug - flashsocket writing 1::
connected - //my console.log call on io.sockets.on('connection', ...
debug - flashsocket received data packet 5:0+::{"args":"7087623252","name":"register"}
а для неработающего клиента:
debug - client authorized
info - handshake authorized 0nztNzwvw260Pa-bRHef
debug - setting request GET /socket.io/1/flashsocket/0nztNzwvw260Pa-bRHef
debug - set heartbeat interval for client 0nztNzwvw260Pa-bRHef
debug - client authorized for
connected - //my console.log call on io.sockets.on('connection', ...
п.с.
это не похоже на проблему с брандмауэром - даже когда брандмауэр выключен, проблема продолжает происходить
Благодарю вас!
2 ответа
В конце концов это была проблема, связанная с антивирусом
за одну секунду до того, как я сошел с ума, я обнаружил, что Avast, установленный на этом компьютере, заблокировал соединение - когда Web Shield был отключен - все работало как чудо
(Установка того же антивируса на мой компьютер с Win7 не привела к проблеме - возможно, это была проблема Win8+Avast)
Спасибо, в любом случае
Я считаю, что это проблема, связанная с браузером. Со страницы socket.io github:
flashsocket
не будет активирован в Chrome или других браузерах, которые полностью поддерживают WebSockets, даже если flashsocket указан в качестве единственного транспорта. Чтобы проверить flashsocket, используйте IE 8 или IE 9 или другие браузеры, которые изначально не поддерживают WebSockets.
Поэтому, если вы хотите убедиться, что flashsocket работает правильно, используйте IE 8/9.