Как WhatsApp отслеживает статус сообщений (доставлено, прочитано)?

Comprehensive data collection focused on Saudi Arabia's information.
Post Reply
ornesha
Posts: 187
Joined: Thu May 22, 2025 6:52 am

Как WhatsApp отслеживает статус сообщений (доставлено, прочитано)?

Post by ornesha »

Одной из ключевых функций WhatsApp является возможность отображать пользователю статус его сообщений — доставлено ли сообщение получателю, прочитано ли оно и т.д. Эта функция реализована через комбинацию протоколов обмена сообщениями, механизма подтверждений и локального обновления статусов. Ниже подробно разберём, как именно WhatsApp отслеживает и отображает статус сообщений.

1. Основные статусы сообщений в WhatsApp
WhatsApp использует три основных индикатора статуса сообщений, которые пользователь видит рядом с каждым сообщением:

Одна серая галочка — сообщение отправлено с устройства пользователя и доставлено на сервер WhatsApp.

Две серые галочки — сообщение доставлено на устройство получателя.

Две синие галочки — сообщение было прочитано (или открыто) получателем.

Для групповых чатов статусы немного отличаются — синими галочками помечается прочтение сообщения всеми участниками группы.

2. Механизм обмена сообщениями и подтверждений
WhatsApp работает на базе протокола обмена сообщениями, который позволяет передавать сообщения между устройствами с помощью серверов WhatsApp, но при этом сквозное шифрование гарантирует, что сами серверы не видят содержимое сообщений.

Когда пользователь отправляет сообщение, оно шифруется на его устройстве и отправляется на сервер WhatsApp.

Сервер пересылает сообщение на устройство получателя.

При получении сообщения устройство получателя отправляет обратно на сервер подтверждение доставки.

Сервер, в свою очередь, отправляет это подтверждение обратно устройству отправителя.

Аналогично, когда сообщение открывается (прочитывается), устройство Казахстанская база данных whatsapp получателя отправляет дополнительное подтверждение.

3. Подтверждение доставки
Когда сервер WhatsApp получает подтверждение о доставке сообщения на устройство получателя, он отправляет обратно на устройство отправителя сигнал, что сообщение доставлено.

Это меняет статус сообщения с одной серой галочки на две серые галочки.

В базе данных WhatsApp (например, в файле msgstore.db) сохраняется метка времени доставки сообщения, что позволяет локально отображать актуальный статус.

4. Подтверждение прочтения
Когда пользователь открывает чат и просматривает сообщение, приложение на устройстве получателя отправляет подтверждение "прочитано" на сервер.

Сервер передаёт это подтверждение обратно устройству отправителя.

Статус сообщения меняется на две синие галочки.

Для групповых чатов синие галочки появляются только после того, как все участники просмотрели сообщение.

На уровне базы данных это также фиксируется меткой времени прочтения.

5. Отслеживание статуса в локальной базе данных
Все изменения статуса сообщений записываются в локальной базе данных WhatsApp (например, в msgstore.db).

Каждое сообщение имеет поля, связанные со статусом, например:

status — общий статус сообщения.

receipt_server_timestamp — время доставки на сервер.

receipt_device_timestamp — время доставки на устройство.

read_device_timestamp — время прочтения.

Приложение обновляет эти поля при получении подтверждений и отображает статус пользователю.

6. Особенности работы со статусом
Если устройство получателя офлайн, сообщение остаётся со статусом "отправлено" до момента доставки.

В случае проблем с доставкой (например, удалён аккаунт получателя) сообщение может остаться с одной галочкой.

При чтении сообщения в групповом чате, каждая галочка становится синей только после прочтения всеми участниками.

В некоторых случаях пользователь может отключить подтверждения о прочтении, тогда отправителю синие галочки не отображаются, но в группах эта функция не работает.

7. Безопасность и конфиденциальность
Все подтверждения (доставлено, прочитано) передаются вместе с зашифрованными сообщениями и не раскрывают содержимого третьим лицам.

WhatsApp применяет сквозное шифрование, поэтому серверы не видят текст сообщений — только метаданные о доставке и прочтении.

8. Пример типичного сценария
Пользователь А отправляет сообщение.

Сообщение получает одну серую галочку — оно загружено на сервер.

Когда устройство пользователя Б получает сообщение, WhatsApp меняет статус на две серые галочки.

Когда пользователь Б открывает чат и видит сообщение, статус меняется на две синие галочки.

Эти статусы обновляются в реальном времени и сохраняются в базе данных локально.

Заключение
WhatsApp отслеживает статус сообщений с помощью системы подтверждений доставки и прочтения, используя сигналы от серверов и устройств пользователей. Эти статусы синхронизируются между устройствами и отображаются пользователю для информирования о том, достигло ли сообщение получателя и было ли им прочитано. Такая система повышает удобство общения, обеспечивая прозрачность и своевременную обратную связь, при этом сохраняя высокий уровень безопасности и конфиденциальности благодаря сквозному шифрованию.
Post Reply