具体需求是这样的,客户端订购了一个主题(topic/msg),在收到EMQX broker的主题消息后,因为Qos1,会立刻回个ACK消息确认已经收到。但是客户端还需要对收到的消息进行处理,处理后再推送另外一个主题(topic/update),这个(topic/update)中包含了消息处理的结果,如果处理失败,需要EMQX
broker重新发送。
哪位大佬帮忙看看,现有的机制能否实现?
具体需求是这样的,客户端订购了一个主题(topic/msg),在收到EMQX broker的主题消息后,因为Qos1,会立刻回个ACK消息确认已经收到。但是客户端还需要对收到的消息进行处理,处理后再推送另外一个主题(topic/update),这个(topic/update)中包含了消息处理的结果,如果处理失败,需要EMQX
broker重新发送。
哪位大佬帮忙看看,现有的机制能否实现?
建议,直接基于 MQTT 协议做上层的业务协议开发了。基于 ACK 会和 MQTT 混杂在一起,而且需要定制改 EMQX 才行。
不能。你可以自己实现类似的逻辑。发送端使用 QoS0 发送 topic/msg 消息,并订阅 topic/update 消息。如果超时时间内没有收到 topic/update ,则重发 topic/msg 。