Как стать автором
Обновить

Комментарии 6

Чат — это самый простой пример для демонстрации того, что такой подход для передачи данных, в принципе, работает

Только для чата и работает. Как только появляются малейшие проблемы в сети (а они всегда появляются), то начинается повторная пересылка TCP пакетов, в которых уже давно неактуальные данные.


В играх обычно используется UDP + предсказания перемещений.

К сожалению, из браузера нельзя открыть UDP соединение напрямую. Либо HTTP-запросы, либо вебсокеты.
Сначала написала, потом загуглила. Видимо, всё же можно — через WebRTC. Да, Вы правы — для шутеров или игр других жанров где важна скорость соединения, такой метод, скорее всего, не подойдет.

>>Видимо, всё же можно — через WebRTC

Хороший повод осветить этот метод

Важно периодически вызывать poll на WebSocketClient, иначе сигналы о входящих сообщениях никогда не придут.

А вот использование poll, это какая-то особенность реализации вебсокетов на Godot?
Быстрый гуглинг почему-то документацию только по нему выдает.
Если да, то не возникает случайно ситуаций, когда пакеты могут потеряться?
Пакеты не должны теряться. Я так понимаю, что до полла — данные копятся в буфере сокета. А poll() на вебсокете вызывает внутри что-нибудь типа read() + парсит фреймы из накопленных данных.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории