Меня интересует процедура обработки входящих сообщений и уведомлений из приложений обмена мгновенными сообщениями, таких как Telegram и WhatsApp. Я знаком с протоколом push, но мне любопытно, как приложения для обмена мгновенными сообщениями реализуют принимающую часть.
Во-первых, это мгновенные сообщения от таких служб, как WhatsApp и Telegram, полученные в форме push-уведомлений, или существует дублирование / избыточность, приводящее к некоторому условию гонки между собственными push-уведомлениями , переданными работник службы экземпляра приложения и сообщений , переданных экземпляру приложения на передний план / в основные процессы? Кроме того, мгновенные сообщения всегда и только отправляются в виде push-уведомлений, как минимум для сквозных зашифрованных сообщений из приложений, таких как Whatsapp?
Во-вторых, согласно упомянутой выше гипотезе дублирования / избыточности, уведомление, обрабатываемое работником службы , передается через экземпляру приложения, которое затем отображает его в целевом чате, или является уведомлением отклонено в пользу того, что экземпляр приложения извлекает исходное сообщение с сервера Telegram / Whatsapp? (Я имею в виду сценарий, в котором это требуется для обеспечения того, чтобы отправителю было предоставлено надежное подтверждение того, что сообщение было получено.)