Publicité
Publicité

Contenu connexe

Publicité

MultiPeer Connectivity Framework

  1. MULTIPEER CONNECTIVITY YO, WANNA TALK? 1
  2. MULTIPEER CONNECTIVITY PLAN ▸ Pourquoi? ▸ Comment? ▸ Quoi? 2
  3. MULTIPEER CONNECTIVITY POURQUOI? ▸ Mobilité accrue ▸ Hétérogénéité des accès plutôt que des méthodes ▸ Zéro configuration 3
  4. MULTIPEER CONNECTIVITY BT Advertisement / Discovery Data Exchange Get Ad-hoc WiFi Settings & connect Setup Ad-hoc WiFi Network Create Session Join Session Session Data Exchange COMMENT? ▸ “Discovery” Bluetooth ▸ Débit et stabilité WiFi ▸ Zéroconf / Bonjour 4
  5. MULTIPEER CONNECTIVITY QUOI? ▸ Réseau ▸ MCAdvertiserAssistant ▸ MCNearbyServiceAdvertiser / MCNearbyServiceBrowser ▸ Peers ▸ MCSession ▸ MCPeerID 5
  6. MULTIPEER CONNECTIVITY CAVEATS ▸ Limitations réseau (évidemment) : portée, débit, etc ▸ Une session contient au plus 8 participants ▸ Peu de fonctions avancées ▸ Mac - iPhone - iPad - Watch - TV 6
  7. MULTIPEER CONNECTIVITY CRÉER / REJOINDRE UNE SESSION ▸ Service Type (NSString) ▸ Peer Display Name (NSString) ▸ MCNearbyServiceAdvertiser -> MCSession ▸ MCNearbyServiceBrowser -> MCSession 7
  8. static NSString * const AppServiceType = @“chat-service"; NSString *dName = [[UIDevice currentDevice] name]; MCPeerID *localPeerID = [[MCPeerID alloc] initWithDisplayName:dName]; Service Type & Local Peer MULTIPEER CONNECTIVITY 8
  9. MCNearbyServiceAdvertiser *advertiser = [[MCNearbyServiceAdvertiser alloc] initWithPeer:localPeerID discoveryInfo:nil serviceType:AppServiceType];
 advertiser.delegate = self; [advertiser startAdvertisingPeer]; Advertising MULTIPEER CONNECTIVITY 9
  10. - (void) advertiser:(MCNearbyServiceAdvertiser *)advertiser didReceiveInvitationFromPeer:(MCPeerID *)peerID withContext:(NSData *)context invitationHandler: (void(^)(BOOL accept, MCSession *session))invitationHandler { if(self.session == nil) {
 self.session = [[MCSession alloc] initWithPeer:localPeerID securityIdentity:nil encryptionPreference:MCEncryptionNone]; } invitationHandler(YES, self.session); } Advertising Attack of The Clones MULTIPEER CONNECTIVITY 10
  11. MCNearbyServiceBrowser *browser = [[MCNearbyServiceBrowser alloc] initWithPeer:localPeerID serviceType:AppServiceType]; browser.delegate = self; Discovery MULTIPEER CONNECTIVITY 11
  12. // optional GUI MCBrowserViewController *browserViewController = [[MCBrowserViewController alloc] initWithBrowser:browser session:session]; browserViewController.delegate = self; [self presentViewController:browserViewController animated:YES completion: ^{ [browser startBrowsingForPeers]; }]; Discovery Harder MULTIPEER CONNECTIVITY 12
  13. MULTIPEER CONNECTIVITY MCSESSION IS LIVE! ▸ Message == NSData ▸ Blobs ▸ NSSecureCoding Objects ▸ Contenu d’une ressource par une NSURL (file ou http) ▸ NSInputStream/NSOutputStream (ouep) 13
  14. MULTIPEER CONNECTIVITY DEMO 14
  15. MULTIPEER CONNECTIVITY QUESTIONS? 15
Publicité