是否有任何方法实现请求-响应模式与mosca MQTT,以“检查答复从客户端和重新发布,如果我没有收到预期的答复在预期的时间”。
我相信这在Mqtt 5中是可能的,但到目前为止,我必须在QoS 1(它支持Mqtt 3.1.1之前)使用Mosca。
我正在寻找一个节点js的解决办法来实现这一点。
发布于 2020-01-26 07:18:12
根据我的注释,您可以使用任何MQTT代理实现请求-响应模式,但是在使用v5之前,您需要自己实现这个模式(或者有一个回复主题和一个消息ID,或者在每个消息中包含一个特定的回复主题)。
因为MQTT 3.11本身并不直接提供此功能,而且MQTT有效负载没有标准格式(只是一些字节!)想出一个通用实现是不可能的(在请求中需要某种类型的唯一id )。这在MQTT v5中通过包含属性 (包括回应主题和相关数据 )的能力得到解决。对于早期版本,您需要在有效负载中添加一些额外的信息(使用您选择的任何编码机制)。
有几个堆栈溢出问题可能会提供一些洞察:
其他条款:
$aws/things/thingName/shadow/get发送消息,AWS IoT在/get/accepted或/get/rejected上响应)。下面是几个节点包(注意:这些包已经有一段时间没有更新了,我还没有检查代码):
即使使用MQTT v5,您也需要自己实现空闲超时。如果您使用的是QOS 1/2,那么代理将负责重新发送消息(直到它收到PUBACK/PUBCOMP),因此重发消息可能会适得其反(许多相同的消息在comms链接关闭时排队)
发布于 2020-01-30 15:03:18
我所做的工作流程摘要
https://stackoverflow.com/questions/59888811
复制相似问题