Nearby Connections adalah API jaringan peer-to-peer yang memungkinkan aplikasi menemukan, terhubung ke, dan bertukar data dengan perangkat di sekitar secara real-time, terlepas dari konektivitas jaringan.
Beberapa contoh kasus penggunaan:
- Papan tulis kolaboratif: Tuliskan ide bersama peserta di sekitar di papan tulis virtual bersama.
- Game multiplayer lokal: Siapkan game multiplayer dan undang pengguna lain di sekitar untuk bergabung.
- Game multilayar: Gunakan ponsel atau tablet sebagai pengontrol game untuk memainkan game yang ditampilkan di perangkat Android layar besar di sekitar, seperti Android TV.
- Transfer file offline: Bagikan foto, video, atau jenis data lainnya dengan cepat dan tanpa memerlukan koneksi jaringan.
Pengantar
Nearby Connections memungkinkan pemberitahuan, penemuan, dan koneksi antara perangkat di sekitar secara peer-to-peer yang sepenuhnya offline. Koneksi antarperangkat memiliki bandwidth tinggi, latensi rendah, dan dienkripsi sepenuhnya untuk memungkinkan transfer data yang cepat dan aman.
Tujuan utama API ini adalah menyediakan platform yang sederhana, andal, dan berperforma tinggi. Di balik layar, API ini menggunakan kombinasi teknologi Bluetooth, BLE, dan Wi-Fi, yang memanfaatkan keunggulan masing-masing sekaligus mengatasi kelemahannya. Hal ini secara efektif mengabstraksi ketidakpastian Bluetooth dan Wi-Fi di berbagai platform dan versi OS, sehingga developer dapat berfokus pada fitur yang penting bagi pengguna mereka.
Ringkasan API
Penggunaan API dibagi menjadi dua fase: pra-koneksi dan pasca-koneksi.
Pada fase pra-koneksi, Pengiklan mengiklankan diri mereka sendiri, sementara Penemu menemukan Pengiklan di sekitar dan mengirim permintaan koneksi. Permintaan koneksi dari Penemu ke Pengiklan memulai alur autentikasi simetris yang menghasilkan kedua belah pihak secara independen menerima (atau menolak) permintaan koneksi.
Setelah permintaan koneksi diterima oleh kedua belah pihak, koneksi dianggap telah dibuat dan perangkat memasuki fase pasca-koneksi, yang memungkinkan kedua belah pihak bertukar data.
Iklan dan penemuan
Pengiklan akan terlihat oleh penemu lain dan penemu akan diberi tahu saat pengiklan baru ditemukan atau telah hilang.
Membuat koneksi
Jika ingin terhubung ke pengiklan di sekitar, penemu dapat meminta koneksi.
Kedua belah pihak akan diberi tahu tentang proses inisiasi koneksi dan keduanya akan memiliki kesempatan untuk menerima atau menolak koneksi.
Setelah kedua belah pihak merespons, masing-masing akan diberi tahu tentang hasilnya. Jika kedua belah pihak menerima koneksi, koneksi dianggap telah dibuat, dan transfer data dapat dimulai.
Bertukar data
Setelah koneksi dibuat, penggunaan API lebih lanjut bersifat simetris, sehingga tidak ada lagi perbedaan antara Pengiklan dan Penemu.
Kedua belah pihak kini dapat bertukar data. Ada 3 jenis Payload yang didukung:
- Byte: Array byte yang dibatasi hingga 32k; ini cocok untuk mengirim hal-hal seperti metadata atau pesan kontrol.
- File: File dengan ukuran berapa pun; file ini ditransfer dari aplikasi ke antarmuka jaringan dengan penyalinan minimal di seluruh batas proses.
- Streaming: Aliran data yang dihasilkan secara langsung, seperti dalam kasus audio/video yang direkam, tanpa ukuran akhir yang diketahui sebelumnya.
Penerima akan diberi tahu tentang data baru yang masuk dan setiap update progres, pembatalan, atau kegagalan.
Koneksi yang dibuat bersifat full-duplex, yang berarti pengiklan dan penemu dapat mengirim dan menerima data secara bersamaan.
Pengumpulan Data
Saat menggunakan SDK Nearby layanan Google Play, analisis penggunaan dikumpulkan untuk meningkatkan pengalaman.
- Metrik performa: Latensi penemuan dan koneksi, keandalan, serta throughput dikumpulkan saat memindai dan menghubungkan ke perangkat menggunakan Nearby SDK.
- Informasi perangkat: Model perangkat, negara, versi build, dan nama paket aplikasi dikumpulkan dan dikaitkan dengan metrik performa untuk mengidentifikasi slice regional dan khusus perangkat.
Pengguna akhir dapat mengizinkan atau menolak pengumpulan ini dengan membuka Setelan > Google > Penggunaan & diagnostik.