Как отличить хост от клиента в iPhone блютус с помощью GameKit - PullRequest
2 голосов
/ 24 июня 2009

Я создал многопользовательскую игру с использованием GameKit Framework, где 2 iPhone / iPod могут подключаться друг к другу через Bluetooth и играть.

Я думаю о том, как выбрать устройство, которое сможет воспроизвести первым. Таким образом, логическое решение состоит в том, чтобы выбрать хост соединения. Есть ли в GKSession даже сервер и клиент? Они все равны? Какой маршрут мне выбрать, чтобы достичь того, что мне нужно?

1 Ответ

6 голосов
/ 24 июня 2009

По сути, вы можете настроить сеанс так, как вам нравится.

Из документации Apple:

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

Копия вашего заявления, действующего как сервер инициализирует сеанс призвание initWithSessionID: отображаемое_имя SessionMode: с режимом сеанса либо GKSessionModeServer или GKSessionModePeer. После приложение настраивает сеанс, оно рекламирует сервис, установив свойство isAvailable сеанса для YES.

Копия вашего заявления, действующего как клиент инициализирует сессию призвание initWithSessionID: отображаемое_имя SessionMode: с режимом сеанса либо GKSessionModeClient или GKSessionModePeer. После настройки сеанс, ваше приложение ищет сеть для рекламных серверов настройка сеанса isAvailable собственность к ДА. Если сессия настроен с помощью GKSessionModePeer Режим сеанса также рекламирует себя как сервер, как описано выше.

Поэтому, если вы используете GKSessionModePeer для инициализации сеанса, у вас есть одноранговые узлы (действующие как сервер и клиент). Если вы хотите отличить сервер от его клиентов, инициализируйте его с помощью GKSessionModeServer.

С уважением.

...