如何在 Paho Python 中订阅 与 JavaScript 一样



我有一个带有mqtt的javascript,我写了一个paho python用于订阅,但我没有得到任何结果。我想打印收到的消息

var mqtt = require('mqtt');
var client  = mqtt.connect('mqtt://127.0.0.1',{
  username: process.env.TOKEN
});
client.on('connect', function () {
  console.log('connected');
  client.subscribe('v1/devices/me/rpc/request/+')
});

client.on('message', function (topic, message) {
  console.log('request.topic: ' + topic);
  console.log('request.body: ' + message.toString());
  var requestId = topic.slice('v1/devices/me/rpc/request/'.length);
  //client acts as an echo service
  client.publish('v1/devices/me/rpc/response/' + requestId, message);
});

'

子的相应python未发布,但我没有得到任何结果

def on_connect(client, userdata, flags, rc):
  print("Connected with result code "+str(rc))
  client.subscribe('v1/devices/me/rpc/request/+')
def on_message(client, userdata, msg):
  print( msg.payload.decode())
  client.disconnect()
  client = mqtt.Client()
  client.username_pw_set("5vTGKxGAHzv5TbsW2Jv1")
  client.connect("127.0.0.1",1882,60)
  client.on_connect = on_connect
  client.on_message = on_message
  client.loop_forever()

提前致谢

NodeJS 应用程序正在连接到 1883(默认端口(,Python 正在连接到 1882。

两组代码都订阅相同的主题(v1/devices/me/rpc/request/+(,因此Python代码永远不会看到响应。

python代码上的缩进是错误的,因此连接和循环永远是on_message回调的一部分。

最新更新