我设法在我的RPi中的Paho-MQTT客户端和我的VPS中的MQTT代理之间建立连接。
现在我试图保护MQTT连接,并且已经向代理添加了用户和密码。我已经更改了mosquitto.conf文件,添加了新的密码文件。
但是现在当我尝试连接我的Paho-MQTT客户时,我收到了这个错误:
错误结果代码:5
这是我的paho-mqtt客户端脚本:
#!/usr/bin/env python
import paho.mqtt.client as mqtt
import subprocess
import datetime
import time
# Broker data
broker = *My Broker IP
broker_port = 1883
timeout_reconnect = 60
broker_topic = "#" #All topics have to be read
# Topic to send payload
topic = "temp/DHT11data"
def on_connect(client, userdata, flags, rc):
#print("Connect with result code: " + str(rc))
if int(str(rc)) == 0:
print("Conexion establecida")
print ""
else:
print("Error result code: " + str(rc))
#client.subscribe(broker_topic)
def on_message(client, userdata, msg):
#print "Message topic: " + msg.topic + ", payload: " + str(msg.payload)
#if msg.topic == topic:
if msg.topic == "temp/test":
if str(msg.payload) != "":
print "Message on: " + str(datetime.datetime.now()) + " - topic: " + msg.topic + ", payload: " + str(msg.payload)
#client.publish(topic, 30, qos=0, retain=False)
client.publish(topic, "Reset...", qos=0, retain=False)
pass
def on_publish(mosq, obj, mid):
#print("Publish mid: " + str(mid))
pass
def on_subscribed(mosq, obj, mid, granted_qos):
print("Subscribed mid: " + str(mid) + ", qos: " + str(granted_qos))
def on_log(mosq, obj, mid, string):
#print("Log: " + str(string))
pass
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.on_publish = on_publish
client.on_subscribed = on_subscribed
client.on_log = on_log
client.connect(broker, broker_port, timeout_reconnect)
client.subscribe(broker_topic, 0)
print "Cliente conectado " + str(datetime.datetime.now())
print ""
client.loop_start()
while True:
try:
client.publish(topic, "Hello world", qos=0, retain=False)
time.sleep(10)
except KeyboardInterrupt:
break
client.disconnect()
print("Desconectado")
我必须添加添加代理用户和psw?我怎么能这样做?
答案 0 :(得分:3)
在调用connect
...
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.on_publish = on_publish
client.on_subscribed = on_subscribed
client.on_log = on_log
client.username_pw_set(“username”, “password”)
client.connect(broker, broker_port, timeout_reconnect)
...