【问题标题】:How to set username / passwd in paho.mqtt.subscribe如何在 paho.mqtt.subscribe 中设置用户名/密码
【发布时间】:2018-03-08 20:58:36
【问题描述】:

这是我来自subscribe_simple.py的脚本

import paho.mqtt.subscribe as subscribe

topics = ['#']

m = subscribe.simple(topics, hostname="eu.thethings.network", retained=False, msg_count=2)

for a in m:
    print(str(a.topic))
    print(str(a.payload))

将此作为错误消息返回给我:

Traceback (most recent call last):
  File "MQTT_subscribe_simple.py", line 15, in <module>
    m = subscribe.simple(topics, hostname="eu.thethings.network", retained=False, msg_count=2)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/subscribe.py", line 252, in simple
    clean_session)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/subscribe.py", line 165, in callback
    client.loop_forever()
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 1481, in loop_forever
    rc = self.loop(timeout, max_packets)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 1003, in loop
    rc = self.loop_read(max_packets)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 1284, in loop_read
    rc = self._packet_read()
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 1849, in _packet_read
    rc = self._packet_handle()
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 2311, in _packet_handle
    return self._handle_connack()
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 2372, in _handle_connack
    self.on_connect(self, self._userdata, flags_dict, result)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/subscribe.py", line 29, in _on_connect
    raise mqtt.MQTTException(paho.connack_string(rc))
paho.mqtt.MQTTException: Connection Refused: not authorised.

我将此行放在具有正确值的循环之前

m.username_pw_set(username, password)

没问题

是否可以通过 paho.mqtt.subscribe 使用身份验证以及如何使用?

【问题讨论】:

    标签: python-3.x mqtt


    【解决方案1】:

    查看源代码here,您似乎可以将身份验证对象传递给subscribe.simple() 调用。

    例如

    m = subscribe.simple(topics, hostname="eu.thethings.network", retained=False, msg_count=2, auth={'username':"foo", 'password':"bar"})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 2015-09-18
      • 2013-05-07
      • 2012-07-11
      • 1970-01-01
      • 2012-09-01
      相关资源
      最近更新 更多