首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Paho-MQTT错误结果代码:5

Paho-MQTT错误结果代码:5
EN

Stack Overflow用户
提问于 2018-01-11 20:38:05
回答 1查看 17.5K关注 0票数 9

我设法在我的RPi中的Paho-MQTT客户端和VPS中的MQTT代理之间建立了连接。

现在,我正试图保护MQTT连接,并向代理添加了用户和密码。我已经更改了mosquitto.conf文件,添加了新的密码文件。

但是现在,当我试图连接我的Paho-MQTT客户端时,我得到了以下错误:

错误结果代码:5

这是我的paho-mqtt客户端脚本:

代码语言:javascript
复制
#!/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?我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-11 22:16:56

在调用connect之前,需要将用户名和密码传递给客户端对象。

代码语言:javascript
复制
...
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)
...
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48215437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档