Nearby Connections는 앱이 P2P 네트워킹 API로 네트워크 연결과 관계없이 근처의 기기와 데이터를 쉽게 검색하고 연결하고 연결할 수 있게 해줍니다.
사용 사례:
- 공동작업 화이트보드: 공유 가상 화이트보드를 통해 주변 참여자와 아이디어를 기록합니다.
- 로컬 멀티플레이어 게임: 멀티플레이어 게임을 설정하고 근처에 있는 다른 사용자를 초대하세요.
- 멀티스크린 게임: Android TV와 같이 근처 대형 화면 Android 기기에 표시되는 게임을 플레이하려면 스마트폰 또는 태블릿을 게임 컨트롤러로 사용합니다.
- 오프라인 파일 전송: 네트워크 연결 없이 사진, 동영상 또는 기타 유형의 데이터를 빠르게 공유합니다.
소개
Nearby Connections는 완전 오프라인 P2P 방식으로 근처 기기 간의 광고, 탐색, 연결을 지원합니다. 기기 간의 연결은 고대역폭, 짧은 지연 시간, 완전 암호화로 빠르고 안전한 데이터 전송을 지원합니다.
이 API의 기본 목표는 단순하고 안정적이며 성능이 우수한 플랫폼을 제공하는 것입니다. 내부적으로 이 API는 블루투스, BLE, Wi-Fi 기술을 함께 사용하여 각각의 약점을 회피하면서 각각의 장점을 활용합니다. 이를 통해 다양한 플랫폼 및 OS 버전에서 블루투스와 Wi-Fi의 모호함을 효과적으로 추상화하여 개발자가 사용자에게 중요한 기능에 집중할 수 있습니다.
API 개요
API 사용은 연결 전 및 연결 후의 두 단계로 나뉩니다.
연결 전 단계에서는 광고주가 직접 광고하는 반면 디스커버는 근처의 광고주를 찾아 연결 요청을 보냅니다. 디스커버에서 광고주로의 연결 요청은 양측이 독립적으로 연결 요청을 수락하거나 거부하는 대칭 인증 흐름을 시작합니다.
양쪽에서 연결 요청을 수락하면 연결이 설정된 것으로 간주되고 기기는 연결 후 단계에 들어가며 양쪽에서 데이터를 교환할 수 있습니다.
광고 및 탐색
광고주는 다른 디스커버에 표시되며 새 광고주를 찾거나 잃어버린 경우 디스커버에 알림이 전송됩니다.
연결 설정
검색자가 근처 광고주에 연결하려고 할 때 연결을 요청할 수 있습니다.
양쪽에 연결 시작 프로세스에 대한 알림이 전송되며 두 사람 모두 연결을 수락하거나 거부할 수 있습니다.
양측이 모두 응답하면 양측에서 결과를 알려드립니다. 양쪽에서 모두 연결을 수락하면 연결이 설정된 것으로 간주되어 데이터 전송이 시작될 수 있습니다.
데이터 교환
연결이 설정된 후에는 API 사용이 추가적으로 대칭을 이루므로 광고주와 디스커버가 더 이상 구분되지 않습니다.
이제 양측에서 데이터를 교환할 수 있습니다. 지원되는 페이로드에는 3가지 유형이 있습니다.
- 바이트: 32k로 제한된 바이트 배열, 메타데이터 또는 제어 메시지와 같은 항목을 전송하는 데 유용합니다.
- 파일: 모든 크기의 파일. 프로세스 경계 간에 최소한의 복사로 앱에서 네트워크 인터페이스로 전송됩니다.
- 스트림: 녹음된 오디오/동영상의 경우와 같이 즉석에서 생성되는 데이터 스트림으로, 사전에 알려진 최종 크기가 없습니다.
수신자는 새로 수신되는 데이터와 진행 상황 업데이트, 취소, 실패에 관해 알림을 받습니다.
설정된 연결은 전이중 방식이므로 광고주와 검색자가 동시에 데이터를 송수신할 수 있습니다.
데이터 수집
Google Play 서비스 Nearby SDK를 사용하는 경우 사용 환경을 개선하기 위해 사용 분석이 수집됩니다.
- 성능 측정항목: Nearby SDK를 사용하여 기기를 검색하고 연결할 때 탐색 및 연결 지연 시간, 안정성, 처리량이 수집됩니다.
- 기기 정보: 기기 모델, 국가, 빌드 버전, 애플리케이션 패키지 이름이 수집되고 성능 측정항목과 연결되어 리전 및 기기별 슬라이스를 식별합니다.
최종 사용자는 설정 > Google > 사용 및 진단으로 이동하여 이 컬렉션을 허용하거나 거부할 수 있습니다.