GKSession
Оператор импорта
Swift
import GameKit
Objective C
@import GameKit;
Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
A GKSession объект предоставляет возможность, чтобы обнаружить и соединиться с соседними устройствами на iOS с помощью Bluetooth или Wi-Fi.
Сеансы прежде всего работают с коллегами. Коллега является любым устройством на iOS, сделанным видимым путем создания и конфигурирования a GKSession объект. Каждая коллега идентифицируется уникальным идентификатором, названным равноправным ID (peerID) строка. Ваше приложение может использовать a peerID строка, чтобы получить читаемое пользователем имя для удаленного узла и попытаться соединиться с той коллегой. Точно так же коллега Вашего сеанса ID видима другим соседним коллегам. После того, как соединение установлено, Ваше приложение использует ID удаленного узла для пакетов адресных сведений, которые это хочет отправить.
Коллеги обнаруживают, что другие равноправные узлы при помощи уникальной строки идентифицируют службу, которую они реализуют, названный сеансом ID (sessionID). Сеансы могут быть сконфигурированы, чтобы широковещательно передать сеанс ID (как сервер), искать другие коллеги, распространяющиеся с тем сеансом ID (как клиент) или действовать и как сервер и как клиент одновременно (как коллега.
Ваше управление приложениями поведение сеанса через делегата, реализующего GKSessionDelegate протокол. Делегата вызывают, когда удаленные узлы обнаружены, когда те коллеги пытаются соединиться с сеансом, и когда изменяется состояние удаленного узла. Ваше приложение также обеспечивает обработчик данных для сеанса так, чтобы сеанс мог передать данные, которые это получает от удаленных узлов. Обработчик данных может быть отдельным объектом или тем же объектом как делегат.
Когда Bluetooth включен, скорости загрузки Wi-Fi решительно уменьшаются, в то время как устройство ищет другие устройства с поддержкой Bluetooth. После того, как время открытия Bluetooth завершилось, скорости Wi-Fi возвращаются к нормальному.
GKSession методы ориентированы на многопотоковое исполнение и могут быть вызваны от любого потока. Однако сеанс всегда вызывает своего делегата на основном потоке.
-
Инициализирует и возвращает недавно выделенный сеанс.
Объявление
Objective C
- (id)initWithSessionID:(NSString *)sessionIDdisplayName:(NSString *)namesessionMode:(GKSessionMode)modeПараметры
sessionIDУникальная строка, идентифицирующая Ваше приложение. Ваш
sessionIDдолжно быть краткое название утвержденного типа службы Bonjour. Еслиnil, сеанс использует идентификатор пакета приложения для создания asessionIDстрока.nameСтрока, идентифицирующая пользователя для отображения другим коллегам. Если
nil, сеанс использует имя устройства.modeРежим сеанс должен работать в. Посмотрите Режимы Сеанса для возможных значений.
Возвращаемое значение
Инициализированный объект сеанса, или
nilесли произошла ошибка.Обсуждение
Только сеансы, работающие с тем же
sessionIDвидимы к Вашему сеансу.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
Делегат объекта сеанса.
Объявление
Objective C
@property(assign) id< GKSessionDelegate > delegateОбсуждение
Делегат сеанса ответственен за наблюдение изменений в других коллегах, работающих с тем же сеансом ID. Ваше приложение должно установить делегата прежде, чем сделать Ваш сеанс известным другим коллегам.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
Булево значение, определяющее, хочет ли сеанс соединиться с новыми коллегами.
Объявление
Objective C
@property(getter=isAvailable) BOOL availableОбсуждение
Когда
availableYEStrue, сеанс видим другим коллегам на основеsessionModeсвойство. Когдаavailableустановлен вNOfalse, это остается связанным с коллегами, но больше не видимо несвязанным коллегам. Значение по умолчаниюNOfalse.Как правило, Ваше приложение конфигурирует объект сеанса с делегатом и получателем данных, и затем устанавливает
availableкYEStrue. Когда делегат заканчивает соединяться с коллегами, это должно установить сеансavailableсвойство кNOfalse.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
- peersWithConnectionState:(iOS 7.0)Возвращает список коллег в указанном состоянии соединения.
Объявление
Objective C
- (NSArray *)peersWithConnectionState:(GKPeerConnectionState)stateПараметры
stateСостояние соединения для поиска. Посмотрите Состояния соединения для возможных значений.
Возвращаемое значение
Массив
NSStringобъекты с apeerIDстрока для каждой коллеги, видимой к сеансу, который в настоящее время находится в указанном состоянии соединения. Если нет никаких коллег в указанном состоянии соединения, этот метод возвратыnil.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
- displayNameForPeer:(iOS 7.0)Возвращает читаемое пользователем имя для коллеги.
Параметры
peerIDСтрока, однозначно определяющая коллегу.
Возвращаемое значение
Имя для коллеги, или
nilеслиpeerIDне связан с видимой коллегой.Обсуждение
Имя дисплея используется для заполнения пользовательского интерфейса с именами других коллег, видимых к сеансу.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
- connectToPeer:withTimeout:(iOS 7.0)Создает соединение с другим устройством на iOS.
Объявление
Objective C
- (void)connectToPeer:(NSString *)peerIDwithTimeout:(NSTimeInterval)timeoutПараметры
peerIDСтрока, идентифицирующая коллегу для соединения с.
timeoutКоличество времени для ожидания прежде, чем отменить попытку подключения.
Обсуждение
Когда Ваше приложение действует как клиент, оно вызывает этот метод для соединения с доступным равноправным узлом, который оно обнаружило. Когда Ваше приложение вызывает этот метод, запрос передается к удаленному узлу, кто выбирает, принять ли или отклонить запрос на установление соединения.
Если соединение с удаленным узлом успешно, делегат
session:peer:didChangeState:метод вызывают для каждой коллеги, с которой он успешно соединился. Если сбои соединения или Ваше приложение отменяют попытку подключения, сеанс вызывает делегатаsession:connectionWithPeerFailed:withError:метод.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
- cancelConnectToPeer:(iOS 7.0)Отменяет незаконченный запрос для соединения с другим устройством на iOS.
Объявление
Objective C
- (void)cancelConnectToPeer:(NSString *)peerIDПараметры
peerIDСтрока, идентифицирующая коллегу, Вы ранее запросили соединиться с.
Обсуждение
Ваше приложение ранее вызывают
connectToPeer:withTimeout:создать соединение с другим устройством на iOS. Когда Ваше приложение отменяет попытку подключения, оба делегатаsession:connectionWithPeerFailed:withError:методы вызывают.Если бы Ваше приложение уже соединилось с коллегой, то Ваше приложение должно вызвать
disconnectFromAllPeersвместо этого.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
- acceptConnectionFromPeer:error:(iOS 7.0)Вызванный делегатом для принятия запроса на установление соединения, полученного от удаленного узла.
Параметры
peerIDСтрока, идентифицирующая коллегу, инициировавшую соединение с сеансом.
errorКогда соединение коллеги, по возврату содержит, если произошла ошибка
NSErrorобъект, объясняющий проблему.Возвращаемое значение
YEStrueесли соединение было установлено к удаленному узлу;NOfalseесли произошла ошибка.Обсуждение
Когда Ваш сеанс действует как сервер, клиентские коллеги могут обнаружить Ваш сеанс и попытку соединиться с ним. Когда клиент пытается соединиться с сеансом, делегат
session:didReceiveConnectionRequestFromPeer:метод вызывают, чтобы решить, должна ли быть соединена коллега. Ваше приложение вызывает этот метод для принятия запроса, илиdenyConnectionFromPeer:отклонить его.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
- denyConnectionFromPeer:(iOS 7.0)Вызванный делегатом для отклонения запроса на установление соединения, полученного от удаленного узла.
Объявление
Objective C
- (void)denyConnectionFromPeer:(NSString *)peerIDПараметры
peerIDСтрока, идентифицирующая коллегу, инициировавшую соединение с сеансом.
Обсуждение
Когда Ваш сеанс действует как сервер, клиентские коллеги могут обнаружить Ваш сеанс и попытку соединиться с ним. Когда клиент пытается соединиться с сеансом, делегат
session:didReceiveConnectionRequestFromPeer:метод вызывают, чтобы решить, должна ли быть соединена коллега. Ваше приложение вызывает этот метод для отклонения запроса илиacceptConnectionFromPeer:error:принять его.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
- setDataReceiveHandler:withContext:(iOS 7.0)Устанавливает объект, обрабатывающий данные, полученные от других коллег, подключенных к сеансу.
Объявление
Objective C
- (void)setDataReceiveHandler:(id)handlerwithContext:(void *)contextПараметры
handlerОбъект, который Вы хотите, чтобы сеанс вызвал, когда это получает данные от других коллег.
contextПроизвольные данные, которые будут переданы каждому вызову обработчика.
Обсуждение
Обработчик должен реализовать метод со следующей подписью:
- (void) receiveData:(NSData *)datafromPeer:(NSString *)peerinSession: (GKSession *)sessioncontext:(void *)context;
где данные содержат байты, полученные от удаленного узла, коллега является строкой, идентифицирующей коллегу, сеанс является сеансом, получившим данные, и контекст является тем же контекстом, переданным в первоначальный вызов
setDataReceiveHandler:withContext:.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
- sendData:toPeers:withDataMode:error:(iOS 7.0)Передает набор байтов к списку связанных коллег.
Объявление
Objective C
- (BOOL)sendData:(NSData *)datatoPeers:(NSArray *)peerswithDataMode:(GKSendDataMode)modeerror:(NSError **)errorПараметры
dataБайты, которые будут отправлены.
peersМассив
NSStringобъекты, идентифицирующие коллеги, которые должны получить данные.modeМеханизм раньше отправлял данные.
errorЕсли данные не могли бы быть поставлены в очередь,
NSErrorобъект, описывающий ошибку.Возвращаемое значение
YEStrueесли данные были успешно поставлены в очередь для передачи;NOfalseесли объект сеанса был неспособен поставить данные в очередь.Обсуждение
Сеанс ставит данные в очередь и передает их в порядке, они были поставлены в очередь. Данные, переданные ненадежно, могут быть получены не в порядке другими коллегами.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
- sendDataToAllPeers:withDataMode:error:(iOS 7.0)Передает набор байтов всем связанным коллегам.
Объявление
Objective C
- (BOOL)sendDataToAllPeers:(NSData *)datawithDataMode:(GKSendDataMode)modeerror:(NSError **)errorПараметры
dataБайты, которые будут отправлены.
modeМеханизм раньше отправлял данные.
errorЕсли данные не могли бы быть поставлены в очередь,
NSErrorобъект, описывающий ошибку.Возвращаемое значение
YEStrueесли данные были успешно поставлены в очередь для передачи;NOfalseесли объект сеанса был неспособен поставить данные в очередь.Обсуждение
Когда сеть свободна, сеанс ставит данные в очередь и передает их.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
Временной интервал, что экспрессы, сколько времени сеанс ожидает, прежде чем он разъединит небыстро реагирующую коллегу.
Объявление
Objective C
@property(assign) NSTimeInterval disconnectTimeoutОбсуждение
Тайм-аут является временем ожидания прежде, чем разъединить коллегу от сеанса. Если коллега разъединяется, делегат
session:peer:didChangeState:метод вызывают.Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
- disconnectFromAllPeers(iOS 7.0)Разъединяет сеанс от всех связанных коллег.
Объявление
Objective C
- (void)disconnectFromAllPeersОператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
- disconnectPeerFromAllPeers:(iOS 7.0)Разъединяет связанную коллегу от всех коллег, подключенных к сеансу.
Объявление
Objective C
- (void)disconnectPeerFromAllPeers:(NSString *)peerIDПараметры
peerIDСтрока, идентифицирующая коллегу для разъединения.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
Имя пользователя. (только для чтения)
Объявление
Objective C
@property(readonly) NSString *displayNameОбсуждение
Имя дисплея передается видимым коллегам так, чтобы они могли представить человекочитаемое имя для Вашего сеанса.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
Строка, идентифицирующая Ваш сеанс для других коллег. (только для чтения)
Объявление
Objective C
@property(readonly) NSString *peerIDОператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
Строка раньше фильтровала список коллег, которым разрешают видеть Ваш сеанс. (только для чтения)
Объявление
Objective C
@property(readonly) NSString *sessionIDОбсуждение
Сеанс ID используется сеансами, сконфигурированными как серверы для распространения себя другим коллегам и сеансами, сконфигурированными как клиенты для поиска совместимых серверов. Сеанс ID должен быть кратким названием утвержденного типа службы Bonjour.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
Режим использование сеанса для нахождения других коллег. (только для чтения)
Объявление
Objective C
@property(readonly) GKSessionMode sessionModeОбсуждение
Режим сеанса изменяет поведение сеанса когда
availableустановлен вYEStrue.A
GKSessionModeServerсеанс распространяет себя к локальным устройствам с помощью его сеанса ID.A
GKSessionModeClientсеанс ищет локальные устройства, распространяя тот же сеанс ID. Поскольку это обнаруживает доступные и совместимые равноправные узлы, это вызывает делегатаsession:peer:didChangeState:метод.A
GKSessionModePeerсеанс и распространяется как сервер и ищет как клиент.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
См. также
-
Механизм раньше передавал данные другим коллегам.
Объявление
Objective C
typedef enum { GKSendDataReliable, GKSendDataUnreliable, } GKSendDataMode;Константы
-
GKSendDataReliableДанные отправляются постоянно, пока они успешно не получены предполагаемыми получателями или времена соединения.
Надежные передачи поставлены в порядке, который они были отправлены. Используйте это, когда необходимо будет гарантировать поставку.
Доступный в iOS 3.0 и позже.
-
GKSendDataUnreliableЕсли ошибка передачи произошла, данные отправляются один раз и не отправляются снова.
Данные, переданные ненадежно, могут быть получены не в порядке получателями. Используйте это для небольших пакетов данных, которые должны поступить быстро, чтобы быть полезными для получателя.
Доступный в iOS 3.0 и позже.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
-
Режимы, определяющие, как сеанс взаимодействует с другими коллегами.
Объявление
Objective C
typedef enum { GKSessionModeServer, GKSessionModeClient, GKSessionModePeer, } GKSessionMode;Константы
-
GKSessionModeServerСервер распространяет себя к локальным устройствам с помощью
sessionIDсвойство.Доступный в iOS 3.0 и позже.
-
GKSessionModeClientКлиент ищет серверы, распространяя то же
sessionIDсвойство.Доступный в iOS 3.0 и позже.
-
GKSessionModePeerКоллега распространяется как сервер и ищет как клиент.
Доступный в iOS 3.0 и позже.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
-
Состояние коллеги, известной сеансу.
Объявление
Objective C
typedef enum { GKPeerStateAvailable, GKPeerStateUnavailable, GKPeerStateConnected, GKPeerStateDisconnected, GKPeerStateConnecting } GKPeerConnectionState;Константы
-
GKPeerStateAvailableКоллега не соединилась с сеансом, но тем, с которым может соединиться сеанс.
Доступный в iOS 3.0 и позже.
-
GKPeerStateUnavailableКоллега, больше не интересующаяся получением соединений.
Доступный в iOS 3.0 и позже.
-
GKPeerStateConnectedКоллега соединилась с сеансом.
Доступный в iOS 3.0 и позже.
-
GKPeerStateDisconnectedКоллега, разъединившаяся от сеанса.
Доступный в iOS 3.0 и позже.
-
GKPeerStateConnectingКоллега, пытающаяся соединяться с сеансом.
Доступный в iOS 3.0 и позже.
Обсуждение
Состояния не являются взаимоисключающими. Например, коллега может быть доступна другим коллегам для обнаружения, в то время как это пытается соединиться с другой коллегой.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
-
GKSessionошибочный домен.Объявление
Swift
let GKSessionErrorDomain: StringObjective C
NSString * const GKSessionErrorDomain;Константы
-
Коды ошибки для
GKSessionошибочный домен.Объявление
Objective C
typedef enum { GKSessionInvalidParameterError = 30500, GKSessionPeerNotFoundError = 30501, GKSessionDeclinedError = 30502, GKSessionTimedOutError = 30503, GKSessionCancelledError = 30504, GKSessionConnectionFailedError = 30505, GKSessionConnectionClosedError = 30506, GKSessionDataTooBigError = 30507, GKSessionNotConnectedError = 30508, GKSessionCannotEnableError = 30509, GKSessionInProgressError = 30510, GKSessionConnectivityError = 30201, GKSessionTransportError = 30202, GKSessionInternalError = 30203, GKSessionUnknownError = 30204, GKSessionSystemError = 30205 } GKSessionError;Константы
-
GKSessionInvalidParameterErrorПараметр имел неожиданное значение.
Доступный в iOS 3.0 и позже.
-
GKSessionPeerNotFoundErrorКоллега с указанным
peerIDстрока не могла быть найдена.Доступный в iOS 3.0 и позже.
-
GKSessionDeclinedErrorКоллега Ваше приложение попыталась подключить к отказанному соединение.
Доступный в iOS 3.0 и позже.
-
GKSessionTimedOutErrorВ указанный период тайм-аута не могла быть завершена работа.
Доступный в iOS 3.0 и позже.
-
GKSessionCancelledErrorКоллега, пригласившая сеанс соединяться с ними, отменила запрос на установление соединения.
Доступный в iOS 3.0 и позже.
-
GKSessionConnectionFailedErrorПопытка установить соединение с другой коллегой перестала работать.
Доступный в iOS 3.0 и позже.
-
GKSessionConnectionClosedErrorСоединение с другой коллегой неожиданно закрылось.
Доступный в iOS 3.0 и позже.
-
GKSessionDataTooBigErrorДанные, которые Ваше приложение попыталось отправить, были слишком большими для сеанса для передачи в единственном вызове.
Доступный в iOS 3.0 и позже.
-
GKSessionNotConnectedErrorЗарезервированный для будущего использования.
Доступный в iOS 3.0 и позже.
-
GKSessionCannotEnableErrorBluetooth не в настоящее время доступен.
Доступный в iOS 3.0 и позже.
-
GKSessionInProgressErrorКоллега, с которой Ваше приложение попыталось соединиться, уже запросила соединение с Вашим сеансом.
Доступный в iOS 3.0 и позже.
-
GKSessionConnectivityErrorОшибка произошла в
GKSessionкод соединения объекта.Доступный в iOS 3.0 и позже.
-
GKSessionTransportErrorОшибка произошла в
GKSessionтранспортный код объекта.Доступный в iOS 3.0 и позже.
-
GKSessionInternalErrorСерьезная ошибка произошла внутри
GKSession.Доступный в iOS 3.0 и позже.
-
GKSessionUnknownErrorЗарезервированный для того, когда ошибка не помещается в другую категорию выше.
Доступный в iOS 3.0 и позже.
-
GKSessionSystemErrorОшибка произошла за пределами
GKSessionуправление объекта, такое как выделение памяти.Доступный в iOS 3.0 и позже.
Оператор импорта
Objective C
@import GameKit;Доступность
Доступный в iOS 3.0 и позже.
Осуждаемый в iOS 7.0.
-
