我对处理即时消息应用程序(如电报和WhatsApp )的入站消息和通知的过程很感兴趣。我熟悉push协议,但我很好奇即时消息应用程序是如何实现接收部分的。
首先,来自WhatsApp和Telegram等服务的即时消息是以推送通知的形式接收的,还是存在重复/冗余导致在适当地传递给应用实例服务工作者的推送通知和传递到应用实例前台/主进程的消息之间存在某种竞争条件?或者,即时消息总是并且只作为推送通知发送,至少对于来自Whatsapp等应用程序的端到端加密消息来说是这样吗?
其次,在上面提到的重复/冗余假设下,服务工作人员处理的通知是传递给应用程序实例,然后应用实例在目标聊天中显示它,还是放弃通知以支持应用实例从Telegram/Whatsapp服务器获取原始消息?(我想到这样一种情况,即需要这样做才能确保向发件人提供可靠的消息确认。)
发布于 2019-01-26 14:08:27
实际上,这是一个棘手的问题,因为像Telegram和WhatsApp这样的应用程序可能有多个案例处理逻辑,非常复杂的逻辑。
但是,根据我的想象,并在我的一些聊天应用程序中实际使用了以下内容:
因此,没有任何重复,因为推送只是通知用户,有一个新的消息,而一个用户不在应用程序。
https://stackoverflow.com/questions/54241357
复制相似问题