Pada awalnya, saya pikir ini kemungkinan besar adalah contoh cloud Android untuk pengiriman pesan perangkat , tetapi tidak mungkin: WhatsApp tidak menyatakan izin yang diperlukan, dan itu berfungsi di Eclair (Android 2.1), sementara pesan cloud ke perangkat ( dan penggantinya, Google Cloud Messaging) membutuhkan setidaknya Froyo (Android 2.2).
Namun, kemungkinan besar semacam layanan pemberitahuan push . Tidak mungkin untuk mengatakan dengan tepat bagaimana penerapannya tanpa akses ke kode sumber WhatsApp.
Namun, bagian tentang hal itu dapat menerima pesan ketika tidak digunakan relatif mudah untuk dijelaskan. Aplikasi ini hampir pasti memiliki layanan yang berjalan di latar belakang untuk memeriksa server secara berkala (atau menerima dorongan server, atau apa pun fungsinya). Saat Anda menerima pesan, layanan akan memunculkan pemberitahuan.
Adapun pertanyaan tentang bagaimana server bisa melakukan push, inilah kemungkinan (sekali lagi, saya tidak dapat memverifikasi tanpa kode sumber):
- WhatsApp memulai dan membuka dua soket: Satu untuk mendengarkan dan satu untuk mengirim pesan ke server.
- WhatsApps mulai mendengarkan pada soket pertama.
- WhatsApp mengirimkan pesan yang berisi nomor telepon Anda dan port soket pendengar ke server dan menunggu pemberitahuan.
- Server mencatat nomor telepon dan porta dalam pesan dan alamat IP dari mana pesan itu berasal.
- Server mengirim pemberitahuan ke aplikasi.
- Aplikasi menerima pengakuan dan menutup soket pesan.
- Pesan dengan nomor telepon Anda sebagai tujuan masuk ke server.
- Server menggunakan alamat IP dan nomor port yang dikaitkan dengan nomor telepon Anda dan menggunakan informasi itu untuk mendorong pesan ke telepon Anda.
Agar ini berfungsi, aplikasi harus memantau keadaan koneksi jaringan dan mengatur ulang soket pendengaran / mengirim ulang pesan pendaftaran bila perlu (jika alamat IP berubah, misalnya).