订阅到emqx消息,怎么发布至mosquitto消息服务器

错误报告

环境

  • EMQX 版本:5.1
    -mosquitto版本:3.1
  • 操作系统版本:Ubuntu 18

重现此问题的步骤

  1. xxx
  2. xxx
  3. xxx

预期行为

实际行为


功能请求

描述你需要的功能

我是用python写的emqx客户端,当客户端订阅到emqx的主题消息时,需要调用mosquitto对象的publish,将消息发布到mosquitto的主题中。

为什么你需要这个功能

web服务使用emqx发布消息至树莓派A的mosquitto(mqtt服务器),树莓派A再通过mosquitto将消息转发至集群中的其他树莓派。


其他

我在emqx的on_message方法中,调用了mosquitto的publish消息发布方法,但是没有任务响应,请问这是什么原因?

没太理解你的用法。

EMQX 是一个 MQTT 服务器,所以你说的写 emqx 客户端是指什么?

就是这个客户端,服务器装了EMQX的MQTT服务器,树莓派装的是mosquitto的MQTT服务器

那你的客户端收到来自 EMQX 的消息后直接调用消息发布 API 把消息发布到 Mosquitto 不就可以了吗?没懂为什么要在客户端这边调用 Mosquitto 的 Publish 消息发布方法。

EMQX 和 Mosquitto 都是 MQTT 服务器,Eclipse Paho Python 是 MQTT 客户端库,客户端库提供的消息发布 API 适用于所有 MQTT 服务器。

”客户端收到来自 EMQX 的消息后直接调用消息发布 API 把消息发布到 Mosquitto“ ,我是这么做的。
我订阅了Mosquitto的主题,但是没有任何反应,

你是不是把消息发给 EMQX 了?你想从一个 MQTT 服务器接收,然后发给另一个 MQTT 服务器,需要起两个客户端进程。

”你想从一个 MQTT 服务器接收,然后发给另一个 MQTT 服务器,需要起两个客户端进程。“
是的,我起两个客户端,我要把emqx的消息发给Mosquitto。
但是我发现,在emqx客户端的on_message方法里面调用Mosquitto客户端的publish没响应。

这是在emqx客户端的on_message方法里面调用Mosquitto客户端的publish调式的截图

你可以抓包看下消息有没有发给 mosquitto。

解决了,谢谢指教!

self 要定义成global.

1 个赞

谢谢,差不多就是这个问题