Ответ 1
Я был бы удивлен, если бы общая скорость соединения в течение времени была разной между веб-браузерами, но причина, по которой вы увидите задержку в первоначальном подключении в Internet Explorer и в Opera, заключается в том, что встроенная поддержка WebSocket недоступна поскольку он был отключен по умолчанию. Таким образом, если вы выберете FlashSocket, перед созданием соединения необходимо будет загрузить дополнительный Flash-объект (SWF файл).
WebSockets вводятся в IE10, а в Opera они доступны, но по умолчанию отключены.
В чем разница между режимом транспорта - XHR-опросом и flash/websocket?
- XHR-опрос - см. http://en.wikipedia.org/wiki/Push_technology#Long_polling
- Соединение FlashSocket - использует объект Flash Socket для установления соединения с сервером WebSocket и обменивается данными с использованием протокола WebSocket. Это означает, что есть взаимодействие между Flash и JavaScript, а также означает, что необходимо загрузить дополнительный Flash-объект (файлы SWF).
Каков наилучший способ транспортировки?
WebSockets для любого веб-браузера, который изначально поддерживает его (Chrome, Firefox, Safari). Если Flash-объект (SWF файл) находится в кеше браузера, соединение должно быть быстрым. Если это не так, произойдет задержка. XHR Long-Polling - хорошее решение и будет работать в браузере, но есть негативы:
- между запросами опроса данные на дисплее могут быть устаревшими (устаревшие).
- Это менее эффективный метод подключения, чем одно TCP-соединение, используемое WebSockets, поскольку HTTP Long-Polling использует множественное соединение для имитации двунаправленной функциональности.
- HTTP имеет служебные данные, что означает, что дополнительная информация заголовка отправляется по запросу и каждому последующему запросу.
Как оптимизировать скорость соединения является socket.io?
(Я новичок в socket.io, это всего лишь предложение)
Я бы посмотрел конфигурацию Socket.io docs и посмотрел, можно ли условно установить transports
на основе браузера, который подключения. Основываясь на ваших опытах, это может быть:
- Chrome, Firefox, Safari - WebSockets
- IE, Opera - XHR-опрос