首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用客户端如何处理传入的即时消息和通知?

应用客户端如何处理传入的即时消息和通知?
EN

Stack Overflow用户
提问于 2019-01-17 17:33:38
回答 1查看 955关注 0票数 3

我对处理即时消息应用程序(如电报和WhatsApp )的入站消息和通知的过程很感兴趣。我熟悉push协议,但我很好奇即时消息应用程序是如何实现接收部分的。

首先,来自WhatsApp和Telegram等服务的即时消息是以推送通知的形式接收的,还是存在重复/冗余导致在适当地传递给应用实例服务工作者的推送通知和传递到应用实例前台/主进程的消息之间存在某种竞争条件?或者,即时消息总是并且只作为推送通知发送,至少对于来自Whatsapp等应用程序的端到端加密消息来说是这样吗?

其次,在上面提到的重复/冗余假设下,服务工作人员处理的通知是传递给应用程序实例,然后应用实例在目标聊天中显示它,还是放弃通知以支持应用实例从Telegram/Whatsapp服务器获取原始消息?(我想到这样一种情况,即需要这样做才能确保向发件人提供可靠的消息确认。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-26 14:08:27

实际上,这是一个棘手的问题,因为像Telegram和WhatsApp这样的应用程序可能有多个案例处理逻辑,非常复杂的逻辑。

但是,根据我的想象,并在我的一些聊天应用程序中实际使用了以下内容:

  • 一些实时协议用于消息传递.电报使用自己的专有协议,WhatsApp使用XMPP。
  • 当双方都在线时(发送方和接收方),则传递一条实时XMPP消息。主要&通常一个应用程序有一个持久的TCP/TLS/WSS连接到聊天服务器,而用户主要使用它。
  • 当收件人不在线时(没有连接到聊天服务器),例如不使用应用程序(应用程序处于后台/挂起模式),则将传递推送通知。这只是通知用户有一条新消息。然后,用户(接收者)打开一个应用程序并接收一个真正的消息(通过实时XMPP连接)或通过REST/HTTP与服务器同步。

因此,没有任何重复,因为推送只是通知用户,有一个新的消息,而一个用户不在应用程序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54241357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档