MultipeerConnectivity框架詳細解析(一) —— 基本概覽(一)

版本記錄

版本號 時間
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

    • MCAdvertiserAssistant是一個便利的類,它處理廣告表制,向用戶呈現(xiàn)傳入的邀請健爬,并處理用戶的回應。 當你的應用程序不需要程序控制的邀請過程時么介,使用這個類來提供一個用戶界面來處理邀請娜遵。
  • MCBrowserViewController

  • MCNearbyServiceAdvertiser

    • MCNearbyServiceAdvertiser類將為您的應用程序通過 Multipeer Connectivity框架提供的特定服務發(fā)布廣告,并通知其代表關于來自附近對等方的邀請桶现。
  • MCNearbyServiceBrowser

    • 使用基礎器件Wi-Fi躲雅,點對點Wi-Fi,藍牙(在iOS)或以太網(wǎng)(在macOS和tvOS中)搜索(按服務類型)附近設備提供的服務骡和,并且可以輕松邀請 設備連接到Multipeer Connectivity會話(MCSession)相赁。
  • MCPeerID

    • MCPeerID對象表示多對話會話中的對等體
  • MCSession

    • MCSession對象啟用并管理Multipeer Connectivity會話中所有對等端之間的通信。

2. Protocols

  • MCAdvertiserAssistantDelegate

    • 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

    • MCSessionDelegate協(xié)議定義了MCSession類的委托可以實現(xiàn)的方法來處理與會話相關的事件绵脯。 有關更多信息,請參閱MCSession。

3. Reference

后記

本篇已結束蛆挫,后面更精彩~~~

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赃承,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子悴侵,更是在濱河造成了極大的恐慌瞧剖,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件可免,死亡現(xiàn)場離奇詭異抓于,居然都是意外死亡,警方通過查閱死者的電腦和手機浇借,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門捉撮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妇垢,你說我怎么就攤上這事呕缭。” “怎么了修己?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迎罗。 經(jīng)常有香客問我睬愤,道長,這世上最難降的妖魔是什么纹安? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任尤辱,我火速辦了婚禮,結果婚禮上厢岂,老公的妹妹穿的比我還像新娘光督。我一直安慰自己,他們只是感情好塔粒,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布结借。 她就那樣靜靜地躺著,像睡著了一般卒茬。 火紅的嫁衣襯著肌膚如雪船老。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天圃酵,我揣著相機與錄音柳畔,去河邊找鬼。 笑死郭赐,一個胖子當著我的面吹牛薪韩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼俘陷,長吁一口氣:“原來是場噩夢啊……” “哼罗捎!你這毒婦竟也來了?” 一聲冷哼從身側響起岭洲,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤宛逗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盾剩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雷激,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年告私,在試婚紗的時候發(fā)現(xiàn)自己被綠了屎暇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡驻粟,死狀恐怖根悼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜀撑,我是刑警寧澤挤巡,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站酷麦,受9級特大地震影響矿卑,放射性物質發(fā)生泄漏。R本人自食惡果不足惜沃饶,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一母廷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧糊肤,春花似錦琴昆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至升酣,卻和暖如春勤讽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拗踢。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工脚牍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巢墅。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓诸狭,卻偏偏與公主長得像券膀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子驯遇,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 在iOS中框架是一個目錄芹彬,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件叉庐,以及圖像舒帮、聲音文件等其他資源。共...
    ch123閱讀 1,780評論 0 1
  • 6轉載-->>IOS框架和服務 在iOS中框架是一個目錄陡叠,包含了共享資源庫玩郊,用于訪問該資源庫中儲存的代碼的頭文件,...
    李小六_閱讀 3,620評論 2 24
  • 轉自:iOS框架和服務 框架簡介 一枉阵、什么是系統(tǒng)框架 在iOS中框架是一個目錄译红,包含了共享資源庫,用于訪問該資源庫...
    淇濱杜隆坦閱讀 1,373評論 0 8
  • 在iOS中框架是一個目錄兴溜,包含了共享資源庫侦厚,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像拙徽、聲音文件等其他資源刨沦。共...
    nkk閱讀 609評論 0 1
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 13,788評論 0 15