Надёжность транспорта
Потеря управления не должна оставлять игровой сеанс активным.
Авторизация
Первый пакет — client.hello; до принятого server.hello не отправляйте ready. HTML5 connect имеет конечный timeout, включая открытие сокета. Старый manifest не используется для автоматического повторного запуска. Новый сеанс разрешает платформа.
Heartbeat и нагрузка
Heartbeat не зависит от игрового времени и работает на паузе. Размер сообщения ограничен одним MiB; HTML5 проверяет исходящий bufferedAmount. Это защита от накопления, не гарантия доставки или восстановления очереди.
Повтор
seq не является протоколом подтверждённой доставки. Защищайте счёт от повторов по shot_id в пределах раунда. complete защищён локально; после обрыва нельзя считать итог гарантированно записанным или повторять его в новом сеансе.
Остановка
Блокируйте ввод при failed/disconnected и stop. При disposal отписывайтесь и закрывайте клиент. Нельзя заменять сломанный транспорт прямым RS-485 для продолжения игры.