iPhone Game Center восстановить соединение - PullRequest
2 голосов
/ 04 октября 2010

Я получил игру в понг для четырех игроков, и когда один из игроков отключается (по любой причине, при входящем звонке, скучно, на автобусе), другие игроки могут продолжать играть.Однако я хочу, чтобы этот человек мог восстановить соединение после того, как его вызов закончен, есть ли у кого-нибудь идея, как я могу это осуществить?

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

Редактировать: я забыл упомянуть, что я использую API Game Center.Поэтому я использую объект матча для отправки данных игрокам, но после отключения игрока будет ли матч работать, и если нет, то есть ли способ присоединиться к матчу?

Ответы [ 2 ]

1 голос
/ 04 октября 2010

1) создайте ключ, который определяет этого пользователя как часть этой игры (может быть, UUID, предоставленный всем игрокам этой игры вместе с компонентом x of y пользователя?)

2) поиск методологиичтобы перезапустить приложение после того, как оно было прервано

3) перезапустить, отправить уникальный ключ на сервер, вернуться в игру

0 голосов
/ 04 октября 2010

Может быть, в вашей игре есть имена пользователей? так, если игрок отключается, то снова приходит, когда он подключается к серверу, проверяет, есть ли это имя пользователя в каких-либо предыдущих играх / комнатах? примечание: это означает, что имена пользователей должны быть уникальными.

В противном случае создайте какую-либо систему userId, в которой каждому новому пользователю, регистрирующемуся в вашей игре, присваивается номер, увеличенный по сравнению с предыдущим пользователем, для регистрации, сохраните это число с помощью клиентских cookie-файлов из браузеров и отправьте число на сервер, когда присоединяющийся к нему игрок присоединяется еще раз.

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

Лучшим методом было бы использовать какую-то систему имени пользователя / пароля, которая делает все имена пользователей уникальными.

Если пользователь подключается во 2-й / 3-й раз, то сервер должен выдать какое-то сообщение о том, что человек в данный момент вошел в систему?

Если этого человека прервали, отправьте пакет отключения или, если вы не можете, сервер позаботится об этом. Либо соединение с сервером будет потеряно, поэтому состояние пользователя будет отключено. Или как-то связь еще жива? может UDP сокет? сервер попытается отправить пакет типа «пинг-понг», если ответа нет, то, очевидно, пользователь отключен от этого приложения, поэтому установите состояние «отключено» и т. д.

...