Можно ли иметь два экземпляра GKSession на одном устройстве при использовании Bluetooth? - PullRequest
0 голосов
/ 07 октября 2011

Я пишу игру для нескольких игроков и подумал, что создам два экземпляра GKSession.Один сеанс установлен в GKSessionModeServer, а другой - в GKSessionModeClient.Сервер правильно сообщается, когда я вызываю peersWithConnectionState: на клиентском одноранговом узле, и каждый сеанс имеет разные идентификаторы одноранговых узлов.Но когда я пытаюсь подключиться к серверу, я получаю сообщение сеанса: connectionWithPeerFailed: withError: с описанием ошибки «Сбой при ожидании исходящего приглашения».

Использование двух сеансов GKS работает, когда Wi-Fi доступен.Я боюсь, что есть некоторые ограничения с Bluetooth, которые запрещают это, но я не уверен.Я мог бы переписать код, чтобы использовать один сеанс GKS на сервере, но я бы не стал кодировать особые случаи, если я знаю, что кто-то другой работает с двумя экземплярами.

Если я отключаю Wi-Fi и Bluetoothя получаю сообщение об ошибке «Сеть недоступна».который я не получаю, если любой из них включен.Это заставляет меня поверить, что это не сработает, если рядом есть другой iPhone.

1 Ответ

2 голосов
/ 14 октября 2011

Я переписал код, поэтому я создаю только одну GKSession на хост-устройстве и отправляю данные между сервером и локальным клиентом напрямую, без использования GKSession. Я мог наконец проверить это с двумя устройствами, и они должным образом соединяются друг с другом. Таким образом, урок состоит в том, чтобы на хосте была только одна GKSession, и она будет работать как с Bluetooth, так и с Wi-Fi.

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