通过GPRS / HSDPA进行MQTT长轮询

时间:2014-10-10 04:26:58

标签: long-polling mqtt gprs

我想使用MQTT将控制信息发送到设备,但我担心将MQTT客户端和单元数据连接起来(基本上是在长轮询模式下)是不好的。数据费用,网络使用,电池寿命或其他方面?

另一种方法可能是在设备收到消息时向设备发送短信 - 但这似乎会破坏MQTT的目的,并在拨号和设置GPRS连接时引入长时间延迟。

有什么理由我应该关注这种方法吗?

2 个答案:

答案 0 :(得分:1)

我认为这种方法非常有效 - 用这种方式考虑:你的应用程序的长轮询只传输非常少量的数据,只要它只是民意调查,所以

  • 数据使用应该是微不足道的
  • 除了keepalive 之外,电池仅受发送的数据影响,该数据至少比长轮询高出一个数量级
  • 作为参考:ActiveSync,一直运行,只不过是一种奇特的长轮询形式

答案 1 :(得分:0)

您可能希望查看旨在通过UDP运行的MQTT-SN,因此不需要活动连接。 Real Small Message Broker是MQTT-SN代理的实现,将桥接到Mosquitto。

另一种方法是在消息上使用retain标志,这样控制应用程序就可以发送消息,设备会在重新连接后立即获取消息,如果应用程序仍处于联机状态则会更少。在所有情况下,应用程序端的用户体验应区分正在发送的请求以及被拒绝或拒绝的请求,因此您将需要三态控制(开启,关闭,待处理)。