我对处理来自即时消息应用程序(例如Telegram和WhatsApp)的入站消息和通知背后的过程感兴趣。我熟悉推送协议,但对即时消息传递应用程序如何实现接收部分感到好奇。
首先,是以推播通知的形式接收来自诸如WhatsApp和Telegram之类的服务的即时消息,还是重复/冗余导致在推播通知正确之间产生某种竞争状况传递给应用实例服务工作者,然后将消息传递给应用实例前台/主进程?另外,即时消息是否总是且仅作为推送通知发送,至少是来自诸如Whatsapp之类的应用程序的端到端加密消息?
第二,根据上述重复/冗余假设,是由服务工作者处理的通知传递到应用程序实例,然后将其显示在目标聊天中,或者是通知< em>废弃,赞成该应用实例从Telegram / Whatsapp服务器获取原始消息? (我想到了这样一种情况,以确保向发件人提供可靠的确认消息已被接收。)
答案 0 :(得分:1)
实际上,这是一个棘手的问题,因为Telegram和WhatsApp之类的应用程序可能有多个处理逻辑的案例,非常复杂的逻辑。
但是我可以想象并在一些聊天应用中实际使用的是:
因此没有任何重复,因为推送只是在用户不在应用程序中时通知用户有新消息。