Как отличить хост от клиента в iPhone блютус с помощью GameKit
-
10-07-2019 - |
Вопрос
Я создал многопользовательскую игру с использованием GameKit Framework, в которой 2 iPhone / iPod могут подключаться друг к другу через Bluetooth и играть.
Я думаю о том, как выбрать устройство, которое сможет воспроизводиться первым. Таким образом, логическое решение состоит в том, чтобы выбрать хост соединения. Есть ли в GKSession даже сервер и клиент? Они все равны? Какой маршрут мне выбрать, чтобы достичь того, что мне нужно?
Решение
По сути, вы можете настроить сеанс так, как вам нравится. Р>
Из документации Apple:
Сессии обнаруживают других пиров на сеть на основе режима сеанса, который устанавливается, когда сеанс инициализируется. Ваше приложение может настроить сессию как сервер, который рекламирует тип услуги на сеть; клиент, который ищет рекламные серверы; или сверстник, который рекламирует как сервер и ищет как клиент одновременно.
копия вашего заявления, действующая как сервер инициализирует сеанс призвание initWithSessionID: отображаемое_имя SessionMode: с режимом сеанса либо GKSessionModeServer или GKSessionModePeer. После приложение настраивает сеанс, оно рекламирует сервис, установив Свойство сеанса isAvailable для YES.
копия вашего заявления, действующая как клиент инициализирует сессию призвание initWithSessionID: отображаемое_имя SessionMode: с режимом сеанса либо GKSessionModeClient или GKSessionModePeer. После настройки сеанс, ваше приложение ищет сеть для рекламных серверов настройка сеанса isAvailable собственность к ДА. Если сессия настроен с помощью GKSessionModePeer Режим сеанса также рекламирует себя как сервер, как описано выше.
Поэтому, если вы используете GKSessionModePeer для инициализации сеанса, у вас есть одноранговые узлы (действующие как сервер и клиент). Если вы хотите отличить сервер от его клиентов, инициализируйте его с помощью GKSessionModeServer.
С уважением.