-
[iOS] MultipeerConnectivity(P2P 프로토콜) 소개 및 예제 프로젝트/iOS 📱 2025. 5. 12. 22:07반응형
안녕하세요 아렉스입니다 :> 오늘은 P2P(peer to peer) 를 도와주는 Multipeer Connectivity 프레임워크에 대해 얘기해 보겠습니다.
P2P(peer to peer)는 서버를 거치지않고 이용자들을 직접 연결하는 프로토콜입니다.
대표적인 P2P 사용 예시는 BitTorrent, WebRTC, Bitcoin P2P 가 있습니다.
Multipeer Connectivity 프레임워크는 주변 장치에서 제공하는 서비스의 검색을 지원하고 메시지 기반 데이터, 스트리밍 데이터 및 리소스(예: 파일)를 통해 해당 서비스와의 통신을 지원합니다.
iOS에서 프레임워크는 인프라 Wi-Fi 네트워크, P2P Wi-Fi 및 Bluetooth 개인 영역 네트워크를 기본 전송에 사용합니다.
macOS 및 tvOS에서는 인프라 Wi-Fi, P2P Wi-Fi 및 이더넷을 사용합니다.
P2P 연결 흐름
- 각 기기가 자신을 광고(advertising) (내가 여기 있어!) - MCNearbyServiceAdvertiser
- 다른 기기가 주변을 탐색(browsing) (누가 있지?)
- 탐색자가 광고자에게 초대(invitation) 전송 (같이 연결할래?) -> MCNearbyServiceBrowser (탐색, 초대)
- 광고자가 수락(accept) (좋아, 연결하자) -> MCNearbyServiceBrowser (탐색, 초대)
- 연결 성립 → 데이터 교환 시작
이 모든 과정을 MultipeerConnectivity가 자동으로 도와줍니다.
Multipeer Connectivity 프레임워크로 작업할 때 앱은 여러 유형의 개체와 상호 작용해야 합니다.
- MCSession : 연결된 피어 장치 간의 통신을 지원합니다. 앱은 세션을 생성하고 피어가 연결 초대를 수락하면 여기에 피어를 추가하고, 다른 피어가 연결하도록 초대하면 세션을 생성합니다. 세션 개체는 세션에 연결된 피어를 나타내는 피어 ID 개체 집합을 유지 및 관리합니다.
- MCNearbyServiceAdvertiser : 앱이 지정된 유형의 세션에 참여할 의향이 있음을 주변 피어에게 알립니다. advertiser object는 단일 로컬 피어를 사용하여 장치와 해당 사용자를 식별하는 정보를 근처의 다른 장치에 제공합니다.
- MCAdvertiserAssistant : advertiser object와 동일한 기능을 제공하지만 사용자가 초대를 수락할 수 있는 표준 사용자 인터페이스도 제공합니다. 고유한 사용자 인터페이스를 제공하거나 표시되는 초대를 프로그래밍 방식으로 추가 제어하려는 경우 advertiser object를 직접 사용합니다.
- MCNearbyServiceBrowser : 앱이 특정 유형의 세션을 지원하는 앱이 있는 주변 장치를 프로그래밍 방식으로 검색할 수 있습니다.
- MCBrowserViewController : 사용자가 세션에 추가할 주변 피어를 선택할 수 있는 표준 사용자 인터페이스를 제공합니다.
- MCPeerID : 장치에서 실행 중인 앱을 주변 피어에게 고유하게 식별합니다.
간단한 텍스트 교환 예제
코드는 아래 Github 링크에서 확인할 수 있습니다
https://github.com/kangddong/My-iOS-Scratch-papaer/tree/main/ExP2P
My-iOS-Scratch-papaer/ExP2P at main · kangddong/My-iOS-Scratch-papaer
궁금한 것을 간단하게라도 써보기 위한 목적. Contribute to kangddong/My-iOS-Scratch-papaer development by creating an account on GitHub.
github.com
잘못된 내용 혹은 이해가 어려운 내용들은 언제든 댓글에서 의견 교환하고 싶습니다!
공감과 구독은 더 나은 글을 작성되는데 큰 도움이 됩니다.읽어주셔서 감사합니다.
참고
https://developer.apple.com/documentation/multipeerconnectivity
Multipeer Connectivity | Apple Developer Documentation
Support peer-to-peer connectivity and the discovery of nearby devices.
developer.apple.com
P2P
동배간 처리 방식, Peer to Peer의 줄임말로 중앙 서버를 거치지 않고 클라이언트 컴퓨터 끼리 직접 통신하
namu.wiki
' > iOS 📱' 카테고리의 다른 글
[UIKit] iOS 앱 화면 밝기 조정하기 (0) 2025.02.13 [UIKit] UIKit의 스토리보드 Preview 적용하기(Storyboard, Preview, 미리보기) (0) 2024.12.08 [iOS] Meet AccessorySetupKit 정리 (0) 2024.06.14 [iOS] Storyboard에서 accessibilityIdentifier 설정하기 (User Defined Runtime Attributes) (0) 2024.03.13 [iOS] HTTP 통신 허용 (0) 2023.11.04