MQTT-如何知道设备是否接收到消息
我们有mqtt生产者和消费者。 MQTT生产者处于客户端级别。 当我们将消息推送到生产者时,如果设备已打开,则它将接收消息。 如果设备已关闭,则在打开之前不会收到消息 我们需要知道,当消息发送到服务器中的MQTT时,若服务器关闭,那个么我们需要知道服务器的状态为,它是排队的还是并没有收到 基于此,我们将为用户发送消息作为,请打开设备做具体操作MQTT-如何知道设备是否接收到消息,mqtt,Mqtt,我们有mqtt生产者和消费者。 MQTT生产者处于客户端级别。 当我们将消息推送到生产者时,如果设备已打开,则它将接收消息。 如果设备已关闭,则在打开之前不会收到消息 我们需要知道,当消息发送到服务器中的MQTT时,若服务器关闭,那个么我们需要知道服务器的状态为,它是排队的还是并没有收到 基于此,我们将为用户发送消息作为,请打开设备做具体操作 是否有更好的方法来了解MQTT中的状态,以查找消息是否已传递或失败,或排队以了解服务器是否处于活动状态。MQTT协议中没有端到端传递通知。发布/订阅范例的
是否有更好的方法来了解MQTT中的状态,以查找消息是否已传递或失败,或排队以了解服务器是否处于活动状态。MQTT协议中没有端到端传递通知。发布/订阅范例的一部分是发布者应该与订阅者分离,一个给定主题可以有0到多个订阅者 有两种方法可以解决这个问题 让订阅者回答一个单独的主题,以确认其已收到消息。您需要在消息负载中包含唯一标识符,以便在响应消息中使用它 您可以使用MQTT的最后遗嘱和遗嘱功能使订户保持其当前状态。启动时,它会将保留的消息发布到已知主题,例如,如果设备意外脱机,则会将true发布到consumer/12345/status,并将LWT设置为publish false。如果它完全关闭,它还应该发布false。这样,发布者可以在决定发布消息之前检查订阅者的状态
我不知道你在用哪个经纪人。但在EMQ X MQTT代理中,当QoS>1时,消息终止传递或ack代理将通知服务器 插件: