Создание простой игры с PHP и Laravel с помощью WebSockets - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь создать веб-сайт для имитации процедур захода на посадку по приборам на самолете в Laravel. Визуальная сторона создается с помощью javascript на стороне клиента. Однако сервер PHP будет обрабатывать бэкэнд игры, такой как обнаружение местности, навигационные средства, математика широты и долготы и т. Д. c. Из-за отсутствия у меня навыков с PHP и Laravel мои идеи о том, как сделать эту работу звучит грубо и, возможно, глупо sh, и я хотел бы получить представление о том, как выполнить такой план.

При загрузке симулятора большое количество параметров передается в виде запроса POST.

Идея 1:

  • Запуск потока в фоновом режиме перебирая все активные игровые экземпляры (я не уверен, как запустить поток после запуска Laravel веб-сервера.)
  • Когда данные необходимо отправить клиенту, используйте WebSockets и pusher и каналы для отправки информации. (Это настройка с помощью Laraval-Echo)
  • Чтобы отправить данные на сервер, используйте AJAX POST-запросы через JavaScript.
  • Чтобы загрузить игру, когда загружается страница приложения в Laravel сохраните все настройки в таблицу SQL, из которой можно получить нить игры. (Есть ли способ сделать это более эффективно?)

Идея 2:

  • Аналогично # 1, но вместо этого есть один глобальный поток который начинается, когда первый человек загружает игру. Данные для игры передаются непосредственно в указанный поток. ЕСЛИ делает это, как создать поток или переменную, к которой может обращаться любой сеанс?

Идея 3:

  • Создайте сервер в Java, который будет обрабатывать игру и подключаться к каждому пользователю через сокеты. (Это кажется наиболее эффективным методом, но для его работы потребуется НАМНОГО больше работы. Конечно, это можно сделать и на других языках.)

В конце мне потребуется только поддержка 100-500 одновременных симуляций, и игровая сторона не слишком сложна для математики.

Кроме того, насколько я понимаю, использование глобальных переменных работает только для подключенного пользователя, а не для всех, поэтому я не мог не используйте это для темы.

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