Мы разрабатываем веб-приложение, которое будет работать только в современных браузерах (IE10 +) по разным причинам.
Одна из реализованных нами функций - Socket.io 1.x. Однако по умолчанию клиент Socket.io пытается поддерживать старые браузеры, поэтому он запускает соединение с длинным опросом, а затем обновляет его до WebSockets. Это пустая трата времени и ресурсов, поскольку мы точно знаем, что браузер поддерживает WS.
Я искал, и я могу найти эту страницу wiki, которая, однако, относится к Socket.io 0.9.
В конце концов я нашел документацию для engine.io-client (на которой Socket.io-клиент основан на ветке 1.x). Это код, который я написал и, кажется, работает. Тем не менее, я хотел бы знать, правильно ли он или что-то не так:
io.connect('https://...', {
upgrade: false,
transports: ['websocket']
})
Как ни странно, просто установить свойство transports
в массив с websockets
было недостаточно; Мне также пришлось отключить upgrade
. Правильно ли это?
Update
Я сделал несколько новых открытий.
Если параметр transports
установлен только на ['websocket']
, это не имеет никакого значения, если включено upgrade
или нет. Это нормально?