首页 文章

带有RabbitMQ的MQTT:我可以't read RabbitMQ'的时间戳和队列不会累积

提问于
浏览
0

我正在使用MQTT发布者,RabbitMQ和Mqtt订阅者 . 我在RabbitMQ上安装了一个插件,用于标记带有时间戳(rabbitmq_message_timestamp)的消息 . 我已经构建了一个AMQP发布者,一个AMQP订阅者和一个使用node.js的MQTT订阅者和一个使用Node-Red的MQTT Publisher(和MQTT out块)设置主题来测试RabbitMQ用户的服务器URL,用户名和密码,保留= true且没有QoS .

第一个问题)当我使用AMQP发布者和AMQP订阅者时,我可以通过读取带有路径:msg.properties.timestamp的字段来检索(侧订阅者)RabbitMQ的时间戳 . 但是当我使用MQTT Publiher和MQTT订阅者时,如果我尝试检索msg.properties.timestamp的值,则nodejs窗口表示字段“properties”未定义 .

第二个问题当我使用我的Node-Red MQTT Publisher(主题为“test”)公开消息时,如果MQTT订阅服务器在测试队列上运行,它会下载消息,但如果测试队列中没有任何子驱动程序,那么RabbitMQ console说测试队列是空的 . 停止MQTT pUblisher后,如果我尝试将MQTT订阅服务器连接到测试队列,它将只接收最后一条消息 .

任何人都可以帮我解决这些问题吗?

1 回答

  • 1

    MQTT消息中没有存储其他元数据属性的位置(例如您提到的时间戳) .

    MQTT消息头几乎只包含主题,QOS和保留标志 .

    因此,如果您订阅了Node-RED MQTT客户端节点,该节点是唯一可用的元数据 .

相关问题