我正在尝试使用以下配置让两个 mqtt 客户端在 mqtt 服务器上进行通信:
listener 1883
persistence true
connection_messages false
log_timestamp true
allow_anonymous false
和这段代码: 文件 Pong.py
import paho.mqtt.client as mqtt
broker = 'ipserver'
pub_topic = "Pong"
sub_topic = "Ping"
def on_connect(client, userdata,flags,rc):
print("Connesso")
client.subscribe(sub_topic)
def on_message(client,userdata,msg):
print(str(msg.payload))
client.publish(pub_topic, "Pong")
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(broker,1883,60)
client.loop_forever()
文件 Ping.py
import paho.mqtt.client as mqtt
#broker = "test.mosquitto.org"
broker = 'ipserver'
pub_topic = "Ping"
sub_topic = "Pong"
def on_connect(client, userdata,flags,rc):
print("Connesso")
client.subscribe(sub_topic)
client.publish (pub_topic, "Ping")
def on_message(client,userdata,msg):
print( msg.payload.decode('utf-8'))
time.sleep(3)
client.publish(pub_topic, "Ping")
def on_publish(mosq,obj,mid):
print("Ping")
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.on_publish =on_publish
client.connect(broker,1883,60)
client.loop_forever()
问题是它们在循环中重复了 onconnect 函数,继续重新连接,因此无法相互通信
答案 0 :(得分:1)
您已明确告知经纪人拒绝匿名客户,但您尚未提供:
将 allow_anonymous false
改为 allow_anonymous true