【问题标题】:Error 128 (0x80) while trying to subscribe to topic with paho-mqtt尝试使用 paho-mqtt 订阅主题时出现错误 128 (0x80)
【发布时间】:2021-06-17 03:11:19
【问题描述】:

hbmqtt 0.9.6 我用作经纪人,paho-mqtt 1.5.1 用作客户。两者都支持MQTT v3.1.1。

代理配置:

listeners:
    default:
        type: tcp
    halp:
        max-connections: 33
        bind: 127.0.0.3:1883
topic-check:
    enabled: false
auth:
    allow-anonymous: true

客户端代码:

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe('abc')

def on_message(client, userdata, msg):
    print(msg.topic + " " + str(msg.payload))

def on_subscribe(mosq, obj, mid, qos):
    print("Subscribed: " + str(mid))
    print("Granted QoS: " + str(qos[0]))

client = mqtt.Client(client_id="subscriber", transport="tcp")

client.on_connect = on_connect
client.on_message = on_message
client.on_subscribe = on_subscribe

client.connect("127.0.0.3", 1883)

client.loop_forever()

客户端正确建立与代理的连接,并且可以毫无问题地向代理发送消息。但是当我尝试订阅主题时,我收到Granted QoS: 128。什么会导致这种问题?
我尝试了什么:

  1. 更改主题名称
  2. 更改端口 ip/端口
  3. 将传输从 tcp 更改为 ws
  4. 更改操作系统(在 Armbian 和 Ubuntu 上试用)
  5. 使用身份验证和登录:密码

【问题讨论】:

  • SUBACK(128) 通常意味着您的客户端没有所需订阅的必要权限。
  • 我认为如果是这样,那么登录名/密码应该会有所帮助

标签: python mqtt paho


【解决方案1】:

Fraschbi 是对的。问题出在指定版本的 hbmqtt:它忽略了权限配置。解决方法是指定客户端可以订阅哪些主题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多