Saya ingin tahu tentang bagaimana WhatsApp dapat menerima pesan saat tidak digunakan.
Maksud saya, saya mengerti bahwa WhatsApp berfungsi menggunakan koneksi Internet daripada jaringan ponsel. Bayangkan saya belum menyentuh ponsel saya dalam beberapa jam. Pada saat itu, seorang teman mengirimi saya pesan di WhatsApp. Saya segera mendapatkannya. Apakah itu berarti WhatsApp menjaga koneksi internet tetap terhubung setiap saat? Apakah itu berarti bahwa WhatsApp bertindak sebagai server, membuka porta pada ponsel? Atau mungkin permintaan HTTP yang sudah berjalan lama?
networking
whatsapp-messenger
Ram Rachum
sumber
sumber
Jawaban:
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):
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).
sumber
Saya tentu saja yakin bahwa WhatsApp TIDAK membuka porta mendengarkan. sebagian besar ISP memblokir permintaan masuk, itu tidak akan berhasil.
WhatsApp memiliki layanan. Pada dasarnya itu berarti bahwa secara teknis Anda tidak pernah keluar dari WhatsApp. Jadi, cara Anda menerima pesan saat Anda "tidak menjalankan" WhatsApp adalah cara yang persis sama dengan yang Anda terima ketika Anda menjalankannya.
Klien, dalam hal ini WhatsApp, terhubung ke server. Klien mempertahankan koneksi itu. Ketika server memiliki sesuatu yang baru untuk dikatakan, itu mengirimkannya ke klien melalui koneksi itu, Dan itu saja.
Tebakan pertama Anda benar.
WhatsApp tidak memiliki mekanisme keluar yang sebenarnya, lihat ini .
sumber
Mereka FAQ menyarankan mereka menggunakan GCM. Periksa jawaban untuk "Apakah pesan masih terlalu lama untuk mencapai telepon Anda?"
sumber
Whatsapp seperti aplikasi lain dijalankan sebagai layanan. (Anda selalu terhubung) Pesan yang dikirim kepada Anda disimpan di server whatsapp hingga 30 hari, dalam periode mana whatsapp Anda harus aktif untuk menerima dan mengakui penerimaan pesan. Akun individual disimpan dengan nomor telepon pengguna @ whatsapp.net
sumber
Saya pikir harus seperti ini:
Ketika whatsapp masih baru, itu akan menggunakan solusi berbasis PNS, PNS ini hanya akan membangunkan perangkat dan setelah bangun, ia dapat membuat koneksi soket ke server whatsapp.
Setelah ketika whatsapp populer sekarang sebagian besar perangkatnya datang sebagai aplikasi asli dan aplikasi asli tidak akan dibunuh. Di samsung s8 saya, saya tidak bisa menghapus whatsapp, mode hemat daya tidak dapat membunuhnya
sumber