【发布时间】:2015-05-15 10:05:45
【问题描述】:
有人可以确认,为了使用 MQTT 协议,嵌入 MQTT 客户端代码的智能设备(Ios 或 Android)上的 APP 必须处于活动状态?如果是这样,我如何从我的远程服务器唤醒应用程序以启用 mqtt 对话?也许推送通知应该提醒智能手机用户打开应用程序,因为一些重要消息对他来说是未完成的?
【问题讨论】:
有人可以确认,为了使用 MQTT 协议,嵌入 MQTT 客户端代码的智能设备(Ios 或 Android)上的 APP 必须处于活动状态?如果是这样,我如何从我的远程服务器唤醒应用程序以启用 mqtt 对话?也许推送通知应该提醒智能手机用户打开应用程序,因为一些重要消息对他来说是未完成的?
【问题讨论】:
对于 Android,应用可以启动一项服务,该服务将在后台运行并始终接收已发布的消息。
对于 IOS,您需要唤醒应用程序以使其连接到代理,通常的方法是使用 Apple 推送通知服务来唤醒应用程序。
【讨论】:
主要是客户端和代理之间的 TCP 套接字(即连接)必须处于活动状态,以便代理可以将消息推送到客户端(作为某些主题的订阅者)。
从客户端处理“断开连接”情况的唯一方法是将“干净会话”设置为 false 连接到代理。在这种情况下,如果该客户端离线,代理将存储该客户端的所有消息,然后在它在线时发送它们。
保罗
【讨论】: