Потоковое API REST против повторных запросов GET - PullRequest
0 голосов
/ 08 января 2020

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

Я ограничен сторонней платформой, которая разрешает только запросы REST API, но не разрешает потоковую передачу API REST, потому что нет способа "установить для заголовка Accept клиента значение text / event-stream" или " Уважайте перенаправления HTTP, в частности код состояния HTTP 307 ".

Итак, я думаю о том, что каждую секунду я читаю базу данных с запросами GET, чтобы узнать, есть ли новые данные, но я боюсь, что это может быть неэффективны с точки зрения данных и вызывают большой счет. Насколько хуже это решение, чем потоковое API REST, и насколько оно практично?

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Firebase предоставляет прослушиватели обратного вызова для запросов. Вы можете прикрепить ChildEventListener к вашему запросу, чтобы отслеживать изменения в вашей базе данных в режиме реального времени. Пока он подключен, он будет считаться одним запросом.

Ссылка на эту ссылку

0 голосов
/ 08 января 2020

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

Но если вы считаете, что пользователи могут иметь задержку в 1000 мс, тогда возникает вопрос, сколько игроков будет играть в игру ежедневно, сколько времени займет каждая игра до финиша sh (по очереди).

((avg. turns per game) * (avg .# of players in a single game)) * (games played per day) будет минимальным показанием только для части игрового процесса. Также вы должны подумать, придется ли вам постоянно проверять несколько документов. Вероятно, будет много записей и чтений в других частях игры.

Так что в целом, я думаю, что это очень неэффективный способ решить эту проблему разными способами.

Что такое платформа ты используешь? Может быть, кто-нибудь сможет как-то обойтись.

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