Lúc đầu, tôi nghĩ rằng đây rất có thể là một phiên bản của đám mây Android gửi tin nhắn cho thiết bị , nhưng không thể: WhatsApp không khai báo các quyền cần thiết và nó hoạt động trong Eclair (Android 2.1), trong khi nhắn tin trên đám mây cho thiết bị ( và thay thế, Google Cloud Messaging) yêu cầu ít nhất Froyo (Android 2.2).
Tuy nhiên, rất có thể là một số loại dịch vụ thông báo đẩy . Không thể nói chính xác cách thức triển khai mà không truy cập vào mã nguồn của WhatsApp.
Mặc dù vậy, phần về việc nó có thể nhận được tin nhắn khi không sử dụng là tương đối dễ giải thích. Ứng dụng gần như chắc chắn có một dịch vụ chạy trong nền để kiểm tra định kỳ với máy chủ (hoặc nhận được sự thúc đẩy của máy chủ hoặc bất cứ điều gì nó làm). Khi bạn nhận được một tin nhắn, dịch vụ sẽ bật lên một thông báo.
Đối với câu hỏi làm thế nào máy chủ có thể thực hiện một cú đẩy, đây là một khả năng (một lần nữa, tôi không thể xác minh nếu không có mã nguồn):
- WhatsApp bắt đầu và mở hai ổ cắm: Một để nghe và một để gửi tin nhắn đến máy chủ.
- WhatsApps bắt đầu nghe trên ổ cắm đầu tiên.
- WhatsApp gửi tin nhắn chứa số điện thoại của bạn và cổng của ổ cắm nghe đến máy chủ và chờ xác nhận.
- Máy chủ ghi lại số điện thoại và số cổng trong tin nhắn và địa chỉ IP mà tin nhắn đến từ đó.
- Máy chủ sẽ gửi xác nhận đến ứng dụng.
- Ứng dụng nhận được xác nhận và đóng ổ cắm tin nhắn.
- Một tin nhắn với số điện thoại của bạn khi đích đến vào máy chủ.
- Máy chủ sử dụng địa chỉ IP và số cổng mà nó đã liên kết với số điện thoại của bạn và sử dụng thông tin đó để đẩy tin nhắn đến điện thoại của bạn.
Để làm việc này, ứng dụng sẽ cần theo dõi trạng thái của kết nối mạng và đặt lại ổ cắm nghe / gửi lại thông báo đăng ký khi cần thiết (ví dụ: nếu địa chỉ IP thay đổi).