WhatsApp 的通知系统是一个精密的组件,可确保用户及时收到消息、来电和其他更新的提醒。它旨在高效、可靠且节省电池寿命,并充分利用 Android 和 iOS 平台的特定功能。以下是 WhatsApp 通知系统的关键技术方面:
1. 平台特定的推送通知服务:
适用于 Android 的 Firebase 云消息传递 (FCM):在 Android 设备上,WhatsApp 严重依赖 Google 的 FCM。当消息发送给 Android 用户时,WhatsApp 的服务器会向 FCM 发送通知负载。然后,FCM 会将此负载传递到用户的设备。由于 FCM 负责管理与 Google 服务器的持久连接,而不是每个应用各自维护连接,因此这种做法非常高效。
适用于 iOS 的 Apple 推送通知服务 (APN):同样,在 iPhone 上,WhatsApp 也使用 Apple 的 APN。当消息发送给 iOS 用户时,WhatsApp 的服务器会将有效负载发送到 APN,然后由 APN 将其递送到用户的 iPhone。APN 还会与 Apple 的服务器保持持久连接,从而优化电池续航。
2.通知有效载荷和数据传输:
有效负载中的元数据:通过 FCM/APN 发送的初始推送通知有效负载通常仅包含元数据,例如发送者的 ID、消息 ID,以及可能包含非常简短的通用提醒(例如,“来自 [联系人姓名] 的新消息”)。出于安全和隐私方面的考虑,它通常不包含实际的消息内容,尤其是在端到端加密消息的情况下。
加密消息检索:收到推送通知后,用户设备上的 WhatsApp 应用 印度尼西亚 whatsapp 号码数据 程序将被唤醒(即使该应用程序处于后台运行或已被终止)。然后,它会与 WhatsApp 服务器建立安全连接,以获取实际的加密消息内容。这确保了消息在到达用户设备之前始终保持端到端加密。
3.电池优化:
推送服务依赖:通过依赖 FCM 和 APN,WhatsApp 无需在后台维持持续的网络连接,从而避免耗电。推送通知服务能够高效地管理与操作系统的连接。
静默推送通知:为了获取加密消息内容,WhatsApp 通常使用“静默”推送通知(在 Android 上也称为数据通知),这种通知会唤醒应用,但不一定向用户显示可见的警报。这允许应用在后台获取消息。
4. 用户通知设置(应用内和操作系统级别):
细粒度的应用内控制: WhatsApp 提供了广泛的应用内通知设置:
对话音:传入/传出消息的声音。
通知铃声:消息和群组的自定义声音。
振动:控制振动模式。
弹出通知(旧版 Android):在屏幕上显示消息预览。
灯光:自定义通知 LED 颜色。
使用高优先级通知:确保通知出现在屏幕顶部。
静音聊天/群组:暂时或永久禁用特定对话的通知。
操作系统级别控制:用户还可以在操作系统级别管理 WhatsApp 通知(例如,Android 的通知渠道、iOS 的通知设置)。这包括:
关闭 WhatsApp 的所有通知。
控制通知样式(横幅、警报、声音、徽章)。
分组通知。
请勿打扰 (DND) 集成。
5.通知持久化与显示:
通知栏/中心:通知出现在设备的通知栏(Android)或通知中心(iOS)中。
锁屏通知:用户可以配置 WhatsApp 通知是否出现在锁屏上以及显示的内容级别(例如,发件人和消息内容,或仅发件人)。
通知分组:现代操作系统版本通常将来自同一聊天或应用程序的多个 WhatsApp 通知分组,以获得更清晰的通知色调。
6.可靠性和故障转移:
冗余:WhatsApp 的服务器基础设施及其对全球推送通知服务 (FCM/APN) 的依赖采用高冗余设计,以确保可靠的通知传递。
重试机制:在网络不稳定或服务器出现临时问题的情况下,可以使用重试机制再次尝试发送通知。
7. 消息同步和已读回执:
通知系统与消息同步功能协同工作。一旦获取并显示消息,已读回执(蓝色勾号)就会发送回执给发送者,并且此状态会在用户关联的所有设备上同步。
8. 多设备通知处理:
有了多设备支持,通知可以协调一致。当消息到达时,所有关联的设备都可能收到推送通知。但是,如果用户在一台关联的设备上阅读了消息,其他关联的设备上的通知通常会自动清除或标记为已读,从而避免重复提醒。
本质上,WhatsApp 的通知系统是其核心消息服务紧密集成的组件,利用特定于平台的推送技术并提供广泛的用户控制,为其数十亿用户提供及时、安全且省电的警报。