ios 藍芽對戰實現

2021-08-04 15:52:51 字數 2669 閱讀 2209

multipeerconnectivity框架的使用

multipeerconnectivity通過wifi、p2p wifi以及藍芽個人區域網進行通訊的框架,從而無需聯網手機間就能傳遞訊息。其原理是通過廣播作為伺服器去發現附近的節點,每個節點都以裝置名稱為標識。

mypeer = mcpeerid.init(displayname: uidevice.current

.name)

session = mcsession.init(peer: mypeer!, securityidentity: nil, encryptionpreference: .none)

session?.delegate = self

mcsession的幾個**方法必須實現,否則無法建立連線

//監聽連線狀態

func session(_ session: mcsession, peer peerid: mcpeerid, didchange state: mcsessionstate)

}//傳送dada資料

func senddata(_ messagevo: gpbmessage, successblock:(()->())?,errorblock:((nserror)->())?)

guard

letdata = nsdatatool.shareinstance

().returndata

(messagevo, messageid: 0)

else

do catch

leterror

asnserror

successblock?()

}//接收到的data資料

func

session

(_ session: mcsession, didreceive data: data, frompeer peerid: mcpeerid)

}//接收到的流資料

func

session

(_ session: mcsession, didreceive stream: inputstream, withname streamname: string, frompeer peerid: mcpeerid)

//接收到的檔案型別資料

func

session

(_ session: mcsession, didstartreceivingresourcewithname resourcename: string, frompeer peerid: mcpeerid, with progress: progress)

//接收到的檔案型別資料,可將檔案換路勁

func

session

(_ session: mcsession, didfinishreceivingresourcewithname resourcename: string, frompeer peerid: mcpeerid, at localurl: url, witherror error: error?)

我們通過mcadvertiserassistant(廣播)開啟搜尋服務

advertiser = mcadvertiserassistant.init(servicetype: servicestr, discoveryinfo: nil, session: session!)

//發出廣播

advertiser?.start()

advertiser?.delegate = self

mcbrowserviewcontrollerdelegate**方法

/// 發出廣播請求

func advertiserassistantwillpresentinvitation(_ advertiserassistant: mcadvertiserassistant)

/// 結束廣播請求

func advertiserassistantdiddismissinvitation(_ advertiserassistant: mcadvertiserassistant)

設定藍芽連線頁面,顯示效果如圖所示:

實現mcbrowserviewcontrollerdelegate**方法

func browserviewcontrollerdidfinish(_ browserviewcontroller: mcbrowserviewcontroller) )

}func browserviewcontrollerwascancelled(_ browserviewcontroller: mcbrowserviewcontroller)

小結

最後**具體實現位址

iOS藍芽學習

在ios中提供4個框架用於藍芽的連線 gamekit.framework 只能用於ios裝置之間連線,且是同乙個應用。ios7之前一般使用這個 multipeerconnectivity.framework 只能用於ios裝置之間連線,且是同乙個應用。ios7之後使用這個來代替gamekit.fra...

ios 藍芽簡介

這裡主要做個記錄。ios中其實提供了四個框架可以讓我們去實現藍芽連線 其中gamekit框架是在ios7的時候過期了,之前常用於遊戲的連線,gamekit框架可以使用藍芽在玩家之間建立乙個對等連線,然後彼此之間可以對戰,蘋果取而代之的是multipeerconnectivity,這兩個框架都只能用於...

iOS藍芽開發

直接看 首先推薦去看官方文件哦 現將建立藍芽工程的要點總結一下,由於工程主要涉及中心模式,所以只總結中心模式的用法 1,引入corebluetooth.framework 2,實現藍芽協議,如 h檔案如下 protocol cbcentralmanagerdelegate protocol cbpe...