Я использую GameKit на базовом уровне прямо сейчас. Я могу соединить два устройства и отправлять сообщения между ними.
У меня есть 3 устройства, мы будем называть их устройствами A, B и C.
Я могу подключить A к B, A к C и B к C, как отдельные настройки.
Если я подключу А к В, а затем попытаюсь подключить В к С, устройство C покажет, что устройство B доступно, но устройство B продолжает вращаться и говорит «В поисках доступных iPod, iPhone ...»
В peerPickerController:sessionForConnectionType:
, когда я пытаюсь подключить B к C, я пытаюсь заставить устройство B повторно использовать тот же GKSession
, который оно использует в своем подключении к A ... потому что, если я создаю новый сеанс на устройстве B он может подключиться к устройству C, но разрывает соединение с устройством A.
Вот это sessionForConnectionType
:
-(GKSession*)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type {
// session is a synthesized GKSession
if (session == nil) {
session = [[GKSession alloc] initWithSessionID:nil displayName:@"" sessionMode:GKSessionModePeer];
session.delegate = self;
}
return session;
}