Создайте сообщение «Соединение с сервером» с помощью socket.io - PullRequest
0 голосов
/ 25 марта 2020

Я нахожусь в процессе создания игры .io с использованием socket.io и express. Я использовал этот учебник , чтобы настроить свой сервер и обрабатывать соединения сервер-сокет. После некоторого тестирования я обнаружил, что иногда сокеты будут подключаться, а затем отключаться очень быстро, а иногда и многократно, что заставляет мой сервер инициализировать и удалять много игроков и возвышать кадр, делая его медленнее (это было собрано за очень короткое время, и очень неэффективно сам по себе). Мне пришлось использовать самый плохой из всех возможных подходов - заставить сокет выдавать сообщение «готово» через 5 секунд после его запуска. Это позволяет генерировать экранную страницу «подключение к серверу» для клиента, что мне очень нравится. Кажется, это работает для меня, но я уверен, что это не будет работать для всех и может привести к той же проблеме. Я попытался использовать socket.on('connect') и document.onload, а также изменить pingTimeout и pingInterval, но они по-прежнему имеют тот же эффект. Я приложил изображение моего терминального сеанса, где я открыл только 3 вкладки, и журнал консоли запускается всякий раз, когда кто-то подключается или отключается. Terminal session of a version that does not wait before connecting players

Код можно найти здесь: https://github.com/Hello-World25/DFG.io

Здесь можно сыграть в последнюю версию игры: https://dfg-io.herokuapp.com/

Должен ли я использовать async await здесь? Я не нашел никаких других случаев этого онлайн, поэтому я очень смущен. Что я должен добавить, чтобы предотвратить это, сообщая пользователю, что он находится в процессе подключения к серверу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...