2016-02-15 3 views
0

Я работаю над одноранговым чат-приложением в iOS, используя межсетевую инфраструктуру подключения, у меня есть настройка как рекламодателя, так и браузера в моем приложении. Вот рекламодатель и код инициализации:Проблема разъединения в инфраструктуре multipeer iOS 9.2

_myDisplayname = [[UIDevice currentDevice] name]; _mypeer =[[MCPeerID alloc]initWithDisplayName:_myDisplayname]; 

_mySession = [[MCSession alloc]initWithPeer:_mypeer securityIdentity:nil encryptionPreference:MCEncryptionRequired]; 
self.mySession.delegate = self; 
_assistant = [[MCAdvertiserAssistant alloc]initWithServiceType:serviceType discoveryInfo:nil session:_mySession]; [_assistant start]; _nearbyBrowser = [[MCNearbyServiceBrowser alloc]initWithPeer:_mypeer serviceType:serviceType]; 
self.advertiser = [[MCNearbyServiceAdvertiser alloc]initWithPeer:self.mypeer discoveryInfo:nil serviceType:@"blue-chat"]; 

-I рекламировал услугу с помощью MCAdvertiserAssistant в viewDidLoad и просмотр код следующим образом:

MCBrowserViewController *browser = [[MCBrowserViewController alloc]initWithBrowser:self.nearbyBrowser session:self.mySession]; 
browser.delegate =self; 
[self presentViewController:browser animated:YES completion:nil]; 
  • Я использовал тот же объект сеанса для как рекламодатель, так и браузер. При запуске на двух устройствах iOS (iPhone 4 и iPhone 6) оба устройства подключаются и работают в чате, но после некоторого времени общения одноранговый узел отключается, а иногда и в течение минуты после установления соединения сверстники отключаются ected. Любая помощь приветствуется. Благодаря!!
+0

ли Вы, решить это? –

+0

Да, это полностью разрешено сейчас! –

+0

Как вы это решили? Пожалуйста! мне нужна помощь –

ответ

1

В сессии делегат установить certificateHandler истинно, если MCSessionState изменения непосредственно от *Connecting* к *Not Connected* государства

public func session(session: MCSession, didReceiveCertificate certificate: [AnyObject]?, fromPeer peerID: MCPeerID, certificateHandler: (Bool) -> Void) 
{ 
    certificateHandler(true) 
} 

Он работал для меня.

Кроме того, если он отключается через некоторое время, проверьте инициализации сеанса, peerID, браузер и рекламодатель переменных

var myOwnPeerId : MCPeerID! 

// For finding the devices 
var serviceAdvertiser : MCNearbyServiceAdvertiser! 

// For listening to devices 
var serviceBrowser : MCNearbyServiceBrowser! 

Первыми Инициализируют myOwnPeerId и использовать тот экземпляр в переменной инициализации serviceBrower и serviceAdvertiser

 Смежные вопросы

  • Нет связанных вопросов^_^