如何检查代理何时向客户端发送消息(订阅者)

时间:2017-01-23 17:01:49

标签: mqtt

我正在为我的android项目实现Paho MQTT Java客户端。它基本上是一个即时消息系统。发布和订阅实现对我来说非常好,但是我有一个问题。订阅的客户端能够在发布时接收消息,但是系统检查客户端(订户)何时接收/发送消息的能力有点难以实现,我认为这是因为MQTT没有支持。

有没有人知道如何以不同的方式实现这种逻辑?

2 个答案:

答案 0 :(得分:2)

MQTT协议没有内置的端到端传递通知。没有办法知道主题有多少订阅者,它可以在0到很多之间。

如果您需要端到端传递通知,那么您需要将其构建到您的应用程序中,方法是在每条消息的有效负载中添加唯一ID,然后从客户端发布另一条消息(可能在单独的主题上)订阅了原始主题。消息也应该在QOS 2上发布和订阅,以确保它们只发送一次。

答案 1 :(得分:1)

根据MQTT上的文档,您可以根据文档声明将调用此回调方法来设置具有方法deliveryComplete(IMqttDeliveryToken token)的MqttCallback

  

完成邮件投递后,已收到所有确认。

确保交付将QoS(服务质量)设置为2.

如果您仍然对这种方法有疑问,可以使用另一种方法,在发送消息时,您可以从客户端获得acknowledgement消息,但这只是mqtt和它的另一个开销。达到你的要求是否使用它。

您可以在他们的github上浏览更多内容,它还有示例代码,以了解有关Mqtt工作原理的更多信息。

我希望这会有所帮助