2014年3月22日 星期六

台灣繁中Multipeer Connectivity Framework Reference

About Multipeer Connectivity多點連線

Framework
/System/Library/Frameworks/MultipeerConnectivity.framework
Header file directories
/System/Library/Frameworks/MultipeerConnectivity.framework/Headers
Declared in
MCAdvertiserAssistant.h
MCBrowserViewController.h
MCError.h
MCNearbyServiceAdvertiser.h
MCNearbyServiceBrowser.h
MCPeerID.h
MCSession.h

多點連線(Multipeer Connectivity framework)支援尋找鄰近iOS裝置,這個裝置使用Wi-Fi網路、點對點WiFi、藍牙個人區域網路,來透過多點連線來傳送訊息資料,串流資料和檔案。


Architecture結構

當要使用Multipeer Connectivity framework時,你的App一定會使用到下列幾種物件:

  • Session objects (MCSession) 支援已經連上線的裝置之間的訊息溝通。如果你的App己經建立了一個session,那這個session 就可以邀請其他的端點加入它,除此之外你的app也可以透過被邀請來加入人家建立好的session。
  • Advertiser objects (MCNearbyServiceAdvertiser) 告訴鄰近的端點,你的App只想要加入特定型態的session。
  • Advertiser assistant objects (MCAdvertiserAssistant) 提供與 advertiser objects相同的功能,但多提供了預設的邀請介面讓使用者去接受邀請。 如果你是想客製化自己的邀請介面,請使用上面的那個就好。
  • Browser objects (MCNearbyServiceBrowser) 讓你的App可以手動寫程式去尋找附近的有安裝多點連接App的裝置,你可以也指定想連接的session的特定型態。
  • Browser view controller objects (MCBrowserViewController) 提供標準使用者介面,讓你去選擇附近的session來加入。
  • Peer IDs (MCPeerID) 在多點連線中裝置唯一的識別碼。
Session物件維持一個peer ID物件的集合(set),裡面存放目前連線在這個session中的每一個端點。Advertiser 物件使用一個單獨的端點(peer)物件去提供該裝置的使用者資訊給其他鄰近的裝置。

Using the Framework

這個framework的使用,有二個階段:尋找session階段及session連線階段。
尋找session階段:
你的App使用brower物件 (described in MCNearbyServiceBrowser Class Reference) 來搜查附近的端點(peer),你可以用framework所提供的 view controller (described in MCBrowserViewController Class Reference) 來顯示查找到的端點。(也可以自己寫客製化的view controller)
App也使用一個 advertiser 物件 (described in MCNearbyServiceAdvertiser Class Reference) 或是一個 advertiser assistant 物件 (described in MCAdvertiserAssistant Class Reference) 來告知附近的端點你的App準備好要連線了,這樣附近的裝置如果已經建立好session就可以邀請你。
在這個階段,你的App僅能得知其他端點有限的資訊,或做最低限度的交流;所謂的有限是指只能取得附近裝置的 discoveryInfo 資料以及他們對你的App邀請的時所發出的資料。
在使用者選好端點之後,App會發出邀請給這些端點,請它們來加入這個session。在附近的App就會收到這個邀請,問使用者要不要接受邀請。
如果這個端點接收到邀請,那browser端會跟發送者建立並開啟他們的session連線。在這個階段,你的app可以直接與多個端點透過session來溝通訊息。這個framework會透過delegate來告知你何時有其他的端點來加入你的session,或者離開你的session。