MultiPeerConnectivityまとめ - enpitut2019/dj-yusaku GitHub Wiki

公式ドキュメント

https://developer.apple.com/documentation/multipeerconnectivity

メモ

MCSession

接続デバイス間の通信管理

MultiPeerConnectivityしたいなら、どのデバイスもこれのインスタンスを作る

session.send(なんとか)ってすると送れる

.sendStreamとか.sendResourseとかある

MCSessionDelegate

送られてきたら実行される関数ども イベント駆動のような感じ

だいたい実装必須

[重要] sessionメソッドの中でUIの更新を行うにはメインスレッドに処理を移す必要がある。

DispatchQueue.main.asyncなどを使う

MCAdvertiserAssistant

advertiserAssistant.start()すると俺を招待(invite)してくれ〜って電波を出す

スマホとワイヤレスイヤホンで言ったら、ワイヤレスイヤホン側

MCAdvertiserAssistantDelegate

実装が必須なメソッドはない

MCBrowserViewController

招待してくれ電波を出してるやつを見つけて接続する

スマホとワイヤレスイヤホンで言ったら、スマホ側

present(browserViewController, animated: true, completion: nil)みたいにして画面を出す

MCBrowserViewControllerDelegate

DoneされたらどうするかCancelされたらどうするか (必須)

画面表示中に新しく見つかったピアがいた場合どうするか (必須じゃない) true -> 表示 false ->表示しない


上の要素で十分だが、MCBrowserViewControllerによるViewがイケてないと感じたら下を使う

MCNearbyServiceAdvertiser

.startAdvertisingPeer()すると見つけてくれする

UIは自分で作る

MCNearbyServiceAdvertiserDelegate

実装必須なメソッドがある

MCNearbyServiceBrowser

.startBrowsingForPeers()で見つけ始めるUIは自分で作る

MCNearbyServiceBrowserDelegate

メソッドの中身でbrowser.invitePeerする

その他

一つのセッションで接続できるのは最大8デバイス

Invite peers to join the session using an MCNearbyServiceBrowser object, an MCBrowserViewController object, or your own peer discovery code. (Sessions currently support up to 8 peers, including the local peer.)

MCSessionの説明より

参考

⚠️ **GitHub.com Fallback** ⚠️