首页 > 解决方案 > 如何使用socketio将推送通知发送到android设备,当它将返回在线时

问题描述

我花了很多时间研究不同平台(android、ios 应用程序、web 应用程序)之间的即时消息传递(以及通知)。

我已经弄清楚了主要概念(不过我可能是错的。如果我错了,请纠正我)。也就是说,我需要:

  1. 一个网络服务器(比如说,它由nodejs+express+socketio 组成
  2. 一些客户端将通过 socketio-client 连接到服务器(android 也可以是客户端)
  3. 消息代理(rabbitmq 或 redis 或 mqtt)也可用于将传入消息临时存储在其上,并在将其保存到数据库后将其发送给目标用户

现在的主要问题是离线推送通知。假设 Web 客户端向 android 客户端发送消息,而 android 现在处于离线状态。当设备恢复在线时,如何向其推送有关其待处理消息的通知。

标签: socket.iorabbitmqmqttpublish-subscribeinstant-messaging

解决方案


使用 MQTT“发布”数据包,您可以设置“保留”标志,这样当您的 Android 设备连接并订阅已发布的主题时,它们将收到该主题的最后一个保留的 MQTT 数据包。

因此,如果您只需要发送最后一条消息,那么这对您来说应该可以正常工作。如果您的设备需要自上次在线以来发送的所有消息,那么您将需要不同的机制。


推荐阅读