Multipeer Connectivity - Team-HGD/SniffMEET GitHub Wiki
iOS 7+
Multipeer Connectivity Framework Peer-to-Peer ํต์ ๋ฐ ์ฃผ๋ณ ์ฅ์น ๊ฒ์์ ์ง์ํ๋ ํ๋ ์์ํฌ
WiFi, Bluetooth๋ฅผ ํตํด ๊ธฐ๊ธฐ ๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ์ธํฐ๋ท ์ฐ๊ฒฐ ์์ด๋ ์ฃผ๋ณ ์ฅ์น์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ฌ์ฉ์ ๋ฒ์ ๋ด์์ ๋น ๋ฅด๊ณ ์์ ์ ์ธ ์ฐ๊ฒฐ์ ์ง์ํ๋ค.
์ฃผ๋ก ๊ทผ์ฒ ์ฌ์ฉ์์์ ๋ฐ์ดํฐ ๊ตํ, ํ์ผ ๊ณต์ , ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ , ๋ฉํฐํ๋ ์ด์ด ๊ฒ์ ๋ฑ์ ํ์ฉ๋๋ฉฐ ์ต๊ทผ์๋ ์ฐ๊ฒฐ์ฑ์ ๊ฐํํ๊ฑฐ๋ ์ธํฐ๋ท์ด ์๋ ์ง์ญ์ ๋ํ ์๋น์ค๋ฅผ ์ง์ํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- MCPeerID ๊ฐ ๊ธฐ๊ธฐ์ ๊ณ ์ ID ํผ์ด ๊ฐ์ ๊ตฌ๋ถ์ ์ฌ์ฉ๋๋ฉฐ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๊ฐ์ ๊ณ ์ ์๋ณ์๋ฅผ ์ด์ฉํด ํผ์ด ์๋ณ
- MCSession ์ฐ๊ฒฐ๋ ํผ์ด ๊ฐ ๋ฐ์ดํฐ ์ ์ก ๋ฐ ํต์ ๊ด๋ฆฌ ์ธ์ ๋ค์์ ํผ์ด์ ๋์ ์ฐ๊ฒฐ์ ํตํด ๋ฉ์์ง ์ก์์ ์ด๋ ๋ฆฌ์์ค ๊ณต์ ์ง์ ์ธ์ ๊ฐ์ฒด๋ ์ธ์ ์ ์ฐ๊ฒฐ๋ ํผ์ด๋ฅผ ๋ํ๋ด๋ ํผ์ด ID ๊ฐ์ฒด ์งํฉ์ ์ ์ง ๋ฐ ๊ด๋ฆฌ
- MCAdvertiserAssistant ๋ก์ปฌ ํผ์ด๊ฐ ์๋น์ค ์ ๊ณต์ ์ญํ ์ผ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ํด๋์ค ๋ค๋ฅธ ํผ์ด๊ฐ ํด๋น ํผ์ด์ ์ฐ๊ฒฐํ ์ ์๋๋ก ์๋ฆฌ๊ณ ์ฐ๊ฒฐ ์์ฒญ์ ๋ํ ์๋ฝ๊ณผ ๊ฑฐ์ ์ง์
- MCNearbyServiceAdvertiser ์ฑ์ด ์ง์ ๋ ์ ํ์ ์ธ์ ์ ์ฐธ์ฌํ ์ํฅ์ด ์์์ ์ฃผ๋ณ ํผ์ด์ ์๋ฆผ ๋จ์ผ ๋ก์ปฌ ํผ์ด๋ฅผ ์ฌ์ฉํด ์ฅ์น์ ํด๋น ์ฌ์ฉ์ ์๋ณ ์ ๋ณด๋ฅผ ์ฃผ๋ณ ๋ค๋ฅธ ์ฅ์น์ ์ ๊ณต
- MCNearbyServiceBrowser ์ฃผ์ ํผ์ด ํ์ํด ์ฐ๊ฒฐ ๊ฐ๋ฅ ์ํ๋ก ๋ง๋ค๊ธฐ MCSession๊ณผ ํจ๊ป ์ฌ์ฉ๋์ด ํผ์ด ๊ฐ ์ฐ๊ฒฐ์ ์ง์
- MCBrowserViewController ๊ธฐ๋ณธ ์ ๊ณต ํด๋์ค ์ด๋ฅผ ์ด์ฉํด ์ด๋ํ๊ณ ์ฐ๊ฒฐํ๊ณ ์ถ์ ํผ์ด๋ฅผ ์ ๊ณต
์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ฅ
-
์ฆ์์์ ์ฐ์ฑ ๋ฉ์ดํธ ํ์ฑ
์ฐ์ฑ ์ค์ ์ฌ์ฉ์๊ฐ ์ฑ์ ์ด์ด ๋ธ๋ฃจํฌ์ค๋ฅผ ํตํด ๊ทผ์ฒ ๋ฐ๋ ค๋๋ฌผ์ ํ์ํ๊ณ , ์ฐ์ฑ ๋ฉ์ดํธ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ค. MCPeerID๋ ๊ฐ ์ฌ์ฉ์์ ์ด๋ฆ์ด๋ ๋ฐ๋ ค๋๋ฌผ ์ด๋ฆ์ผ๋ก ์ค์ ํด, ์๋๋ฐฉ์ด ํผ์ด์ ๋ฐ๋ ค๋๋ฌผ ์ฑํฅ์ ํ์ธํ ์ ์์ผ๋ฉฐ, ์๋๋ฐฉ์ด ์๋ฝํ๋ฉด ์ฐ์ฑ ํํฐ๋ฅผ ์ฆ์์์ ๋งบ์ด ์ฑ ๋ด์์ ๋ฐ๋ ค๊ฒฌ ์ ๋ณด์ ํจ๊ป ๊ธฐ๋กํ๋ค.
-
๋ฐ๋ ค๋๋ฌผ ์ฑํฅ ๊ณต์ ๋ฐ ์ผ์น๋ ํ์ธ
MCPeerID์ MCAdvertiserAssistant๋ฅผ ์ฌ์ฉํด ์๋๋ฐฉ์ ๋ฐ๋ ค๋๋ฌผ ์ฑํฅ(์ฐ์ฑ ๋น๋, ๋์ด, ํฌ๊ธฐ ๋ฑ)์ ๊ณต์ ํ๊ณ , ์๋ก์ ๋ฐ๋ ค๋๋ฌผ์ด ์ด์ธ๋ฆด ๊ฐ๋ฅ์ฑ์ ์ฆ์์์ ํ์ธํ ์ ์๋ค.
-
์ฃผ๋ณ ์ฐ์ฑ ์ค์ธ ๋ฉ์ดํธ์ ์ค์๊ฐ ์์น ๊ณต์
์ฐ์ฑ ์ค์ธ ๋ฉ์ดํธ ๊ฐ์๋ ์์น๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ณต์ ํด ์๋ก์ ํ์ฌ ์ฐ์ฑ ์์น์ ์ฐ์ฑ ์งํ ์ํฉ์ ์ ์ ์๋๋ก ํ ์ ์๋ค. ์ด๋ฅผ ํตํด ์ ํด์ง ๋ฐ๊ฒฝ ๋ด์์ ์ฐ์ฑ ํ๋ ๋ฐ๋ ค๊ฒฌ์ ์์น๋ฅผ ํ์ธํ๊ณ , ๋ค๋ฅธ ๋ฉ์ดํธ์์ ๋ง๋จ์ ๊ณํํ ์๋ ์์ ๊ฒ ๊ฐ๋ค.
์ฐธ๊ณ
https://developer.apple.com/documentation/multipeerconnectivity
https://velog.io/@lawn/iOS-Multipeer-Connectivity
https://bokoo.tistory.com/entry/iOS-NearbyInteraction%EB%9E%80