版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2018.02.04 |
前言
MultipeerConnectivity
框架支持點對點連接和附近設備的發(fā)現(xiàn)棺弊。是iOS 7 推出的眾多新框架的一種提前,它拓寬了操作系統(tǒng)中應用的范圍椒拗。其目的是使開發(fā)者可以創(chuàng)建通過Wi-Fi或藍牙在近距離建立連接的應用。是在近距離設備間建立互動服傍,交換數(shù)據(jù)和其他資源的很好的簡單工具蒸甜。接下來幾篇我們就一起看一下這個框架。
Overview
下面先看一下該框架的基本信息睛竣。
Multipeer Connectivity
框架支持發(fā)現(xiàn)附近設備提供的服務晰房,并支持通過基于消息的數(shù)據(jù),流式數(shù)據(jù)和資源(如文件)與這些服務進行通信。 在iOS中殊者,框架使用基礎設施Wi-Fi網(wǎng)絡与境,點對點Wi-Fi和藍牙個人區(qū)域網(wǎng)絡作為底層傳輸。 在macOS和tvOS中猖吴,它使用基礎設施Wi-Fi摔刁,點對點Wi-Fi和以太網(wǎng)。
下面看一下該框架的基本結構海蔽。
Architecture - 結構
使用Multipeer Connectivity
框架時簸搞,您的應用程序必須與多種類型的對象進行交互:
會話對象(MCSession)支持連接的點對點設備之間的通信。您的應用程序創(chuàng)建一個會話准潭,并在對等方接受邀請時添加對等點,并在邀請其他對等點連接時創(chuàng)建一個會話域仇。會話對象維護一組代表連接到會話的對等體的對等ID對象刑然。
廣告對象(MCNearbyServiceAdvertiser)會告訴附近的peers,您的應用程序愿意加入指定類型的會話暇务。廣告商對象使用單個本地對等對象來向其他附近設備提供將設備及其用戶標識的信息泼掠。
廣告助理對象(MCAdvertiserAssistant)提供與廣告對象相同的功能,但也提供允許用戶接受邀請的標準用戶界面垦细。如果您希望提供自己的用戶界面择镇,或者希望對顯示的邀請進行附加的程序控制,請直接使用廣告對象括改。
瀏覽器對象(MCNearbyServiceBrowser)允許您的應用程序以編程方式搜索附近支持特定類型會話的設備腻豌。
瀏覽器視圖控制器對象(MCBrowserViewController)提供了一個標準的用戶界面,允許用戶選擇附近的對等點添加到會話中嘱能。
Peers ID(MCPeerID)唯一標識設備上運行的應用程序到附近的對等吝梅。
Discovery Phase and Session Phase - 發(fā)現(xiàn)階段和會話階段
這個框架分兩個階段使用:發(fā)現(xiàn)階段和會話階段。
在發(fā)現(xiàn)階段惹骂,您的應用程序使用MCNearbyServiceBrowser對象瀏覽附近的對等點苏携,可以使用MCBrowserViewController對象來顯示用戶界面。
該應用程序還使用MCNearbyServiceAdvertiser對象或MCAdvertiserAssistant對象來告知附近的對等方对粪,該對象可用右冻,以便其他附近設備上的應用程序可以邀請其參加會話。
在發(fā)現(xiàn)階段著拭,您的應用與其他對等點的通信收到了限制纱扭,它可以訪問附近其他客戶端提供的discoveryInfo
數(shù)據(jù)以及其他對等方在邀請其加入會話時提供的任何上下文數(shù)據(jù)。
在用戶選擇將哪個對等點添加到會話之后茫死,應用邀請這些對等點加入會話跪但。運行在附近設備上的應用程序可以選擇是否接受或拒絕邀請,并可以要求他們的用戶許可。
如果對方接受邀請屡久,則瀏覽器與廣告建立連接忆首,并開始會話階段。在此階段被环,您的應用可以與會話中的一個或多個對等方進行直接通信糙及。當對等體加入會話和離開會話時,框架通過委托回調通知您的應用程序筛欢。
如果應用程序移到后臺浸锨,框架會停止廣告和瀏覽,并斷開任何打開的會話版姑≈眩回到前臺后,框架自動恢復廣告和瀏覽剥险,但是開發(fā)者必須重新建立任何關閉的會話聪蘸。
Topics
1. Classes
-
-
MCAdvertiserAssistant
是一個便利的類,它處理廣告表制,向用戶呈現(xiàn)傳入的邀請健爬,并處理用戶的回應。 當你的應用程序不需要程序控制的邀請過程時么介,使用這個類來提供一個用戶界面來處理邀請娜遵。
-
-
-
MCBrowserViewController
類將附近的設備呈現(xiàn)給用戶,并允許用戶邀請附近的設備進行會話壤短。 要在iOS或tvOS中使用此類设拟,請調用底層UIViewController
類(prepareForSegue:sender:
和performSegueWithIdentifier:sender:
對于storyboard或 presentViewController:animated:completion:
和 dismissViewControllerAnimated:completion:
對于基于nib的視圖)來提交和銷毀視圖控制器。 在macOS中鸽扁,使用類似的NSViewController
方法presentViewControllerAsSheet:
和dismissViewController:
來代替蒜绽。
-
-
-
MCNearbyServiceAdvertiser
類將為您的應用程序通過Multipeer Connectivity
框架提供的特定服務發(fā)布廣告,并通知其代表關于來自附近對等方的邀請桶现。
-
-
- 使用基礎器件Wi-Fi躲雅,點對點Wi-Fi,藍牙(在iOS)或以太網(wǎng)(在macOS和tvOS中)搜索(按服務類型)附近設備提供的服務骡和,并且可以輕松邀請 設備連接到
Multipeer Connectivity
會話(MCSession)
相赁。
- 使用基礎器件Wi-Fi躲雅,點對點Wi-Fi,藍牙(在iOS)或以太網(wǎng)(在macOS和tvOS中)搜索(按服務類型)附近設備提供的服務骡和,并且可以輕松邀請 設備連接到
-
-
MCPeerID
對象表示多對話會話中的對等體
-
-
-
MCSession
對象啟用并管理Multipeer Connectivity會話中所有對等端之間的通信。
-
2. Protocols
-
-
MCAdvertiserAssistantDelegate
協(xié)議描述了MCAdvertiserAssistant
實例的委托對象可以實現(xiàn)的處理廣告相關事件的方法慰于。
-
-
MCBrowserViewControllerDelegate
-
MCBrowserViewControllerDelegate
協(xié)議定義了委托對象可以實現(xiàn)的處理與MCBrowserViewController
類有關的事件的方法钮科。
-
-
MCNearbyServiceAdvertiserDelegate
-
MCNearbyServiceAdvertiserDelegate
協(xié)議描述MCNearbyServiceAdvertiser
實例的委托對象可以實現(xiàn)的用于處理來自MCNearbyServiceAdvertiser
類的事件的方法。
-
-
MCNearbyServiceBrowserDelegate
-
MCNearbyServiceBrowserDelegate
協(xié)議定義一個MCNearbyServiceBrowser
對象的委托可以實現(xiàn)處理瀏覽器相關事件的方法婆赠。
-
-
-
MCSessionDelegate
協(xié)議定義了MCSession類的委托可以實現(xiàn)的方法來處理與會話相關的事件绵脯。 有關更多信息,請參閱MCSession。
-
3. Reference
后記
本篇已結束蛆挫,后面更精彩~~~