Определите, случайно ли ушел другой игрок (например, отключение от интернета), и снова подключитесь - многопользовательская игра Google Play в реальном времени.

Я использую игровой сервис Google Play в реальном времени.

В настоящее время, если я отключаю WIFI на одном клиенте, другой клиент не обнаруживает, что соединение потеряно. События PeerDisconnect не вызываются.

1 - Предоставляет ли API что-либо для проверки, подключен ли одноранговый узел?

2 - Можно ли позволить игроку подключиться к комнате?

1 ответ

1 - Предоставляет ли API что-либо для проверки, подключен ли одноранговый узел?

Как указано в разделе " Подключение игроков", вы можете отслеживать состояние подключения участников с помощью RoomStatusUpdateListener Обратные вызовы. Как указано:

Чтобы получать уведомления, когда все игроки подключены, ваша игра может использовать RoomUpdateListener.onRoomConnected() Перезвоните. Ваша игра также может использовать RoomStatusUpdateListener обратные вызовы для контроля состояния соединения участников. В зависимости от статуса подключения участника ваша игра может решить, следует ли начать или отменить игровой сеанс.

2 - Можно ли позволить игроку подключиться к комнате?

Мультиплеер в реальном времени - геймплей гласит:

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

В дополнение к этому, ссылаясь на лучшие практики для многопользовательской игры в реальном времени:

Если вы не покинете комнату надлежащим образом, игровые сервисы Google Play продолжат отправлять клиенту уведомления о событиях и приглашениях. Вы должны покинуть активную комнату всякий раз, когда происходит один из следующих сценариев:

  • Геймплей окончен (например, игрок выиграл матч).
  • Когда ваша игра уходит на задний план.
  • На Android выйдите из комнаты, когда:
    • Игрок отменяет игру в интерфейсе комнаты ожидания.
    • Код ответа, возвращенный в onActivityResult() обратный вызов GamesActivityResultCodes.RESULT_LEFT_ROOM,
    • Активность onStop() называется. Это может указывать на то, что ваша активность уничтожается. В этом случае выйдите из комнаты и позвоните disconnect(),

Надеюсь, что эти ссылки покрывают все ваши проблемы. Удачного кодирования!:)

Другие вопросы по тегам