使用mosca MQTT的请求响应模式

问题描述 投票:0回答:2

是否有任何方法可以通过mosca MQTT来实现请求-响应模式,以“检查来自客户端的答复,如果我没有在预期的时间内收到预期的答复,则重新发布”。

我相信这在Mqtt 5中是可行的,但是到目前为止,我必须使用QoS 1(直到Mqtt 3.1.1才支持的Mosca代理)

我正在寻找Node js解决方法来实现这一目标。

node.js mqtt message-queue publish-subscribe mosca
2个回答
1
投票

根据我的评论,您可以对任何MQTT代理实施请求-响应模式,但是在v5之前,您需要自己实现(具有单个答复主题和消息ID,或者包括特定的答复-到每个消息中的主题)。

因为MQTT 3.11本身不直接提供此功能,并且MQTT有效负载没有标准格式(仅一些字节!),所以无法提出通用实现(请求中需要某种唯一的ID) )。在MQTT v5中,通过包含propertiesResponse Topic的功能可以解决此问题。对于较早的版本,您必须添加一些额外的信息到有效负载中(使用您选择的任何编码机制)。

有一些堆栈溢出问题可能会提供一些见解:

其他文章:

  • /get/rejected
  • replyer
  • 即使使用MQTT v5,您也需要自己实现空闲超时位。如果您使用的是QOS 1/2,则代理将负责重新发送消息(直到收到PUBACK / PUBCOMP消息),因此重新发送消息可能适得其反(当comms链接关闭时,许多相同的消息排队)]


0
投票

我完成的工作流程摘要

© www.soinside.com 2019 - 2024. All rights reserved.