Chrome на Android задерживает трафик Websocket - PullRequest
1 голос
/ 01 августа 2020

Я разрабатываю пошаговую игру с использованием веб-технологий. Игра связывается с сервером с помощью простого веб-сокета. Я обнаружил странную проблему: Chrome на Android иногда задерживает прием сообщений с сервера до 10 секунд, даже если устройство подключено через WiFi! Любопытно, что браузер Chrome, запускающий то же приложение на настольном компьютере P C, подключенном к той же сети, немедленно получает сообщения веб-сокета. Каждое сообщение имеет длину около 100–150 байт, а диапазон трафика c составляет около 1..30 сообщений в минуту.

Кажется, что Android или Chrome пытается «оптимизировать» трафик c использования или потребления ЦП и накапливает короткие сообщения в буфере перед вызовом Websocket.onmessage (). На сетевом уровне задержек нет: соединение стабильное, серверный сокет активировал TCP_NODELAY, настольные браузеры работают нормально. Такое же поведение было воспроизведено на устройствах var ios: Huawei, Samsung Galaxy, Xiaomi Redmi и др. c ...

Кто-нибудь еще сталкивался с этой проблемой? Существуют ли какие-либо дополнительные настройки для Websocket или Page, которые делают соединение websocket более отзывчивым на Android?

Chrome Desktop: 84.0.4147.89, Chrome Android: 84.0.4147.105

...