Paho Python Client with HiveMQ

一笑奈何 提交于 2019-12-08 11:54:07

问题


i am developing a module in python that will allow me to connect my raspberry pi to a version of hivemq hosted on my pc.

it connects normally but when i add hivemq's file auth plugin it doesnt seem to work

im using the username_pw_set to set my username and password

here is what my code currently looks like:

import paho.mqtt.client as mqtt
client = mqtt.Client()

#The callback for when the client recieves a CONNACK response from the server
def on_connect(client, userdata, flags, rc):
  print("connected with the result code "+str(rc))


#Define any topics you would like the pi to
#automatically subscribe to here

#The callback for when this client publishes to the server.
def on_publish(client, userdata, mid):
  print("message published")


#The callback for when a PUBLISH message is recieve from the server.
def on_message(client, userdata, msg):
  print(msg.topic+" "+str(msg.payload))


def on_log(client, userdata, level, buf):
  print(str(level)+" "+str(buf))


#set callbacks
def setup():
  client.on_connect = on_connect
  client.on_message = on_message
  client.on_publish = on_publish
  client.on_log = on_log

#setup connection to broker
def connect(username, password):
  client.username_pw_set(username, password)
  client.connect("10.19.109.152")

def publish(topic, message):
  client.publish(topic, message)

def loop():
  client.loop()

could it be something to do with the way the python client formats the connect request?

Edit:

Server gives me error message:

2015-11-26 09:50:53,723 ERROR - Could not get valid results from the webservice
org.apache.http.NoHttpResponseException: The target server failed to respond
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(Default
HttpResponseParser.java:143)

and my client(on_connect function) outputs a connack message with code 5 which is for refused connection as its not authorised.


回答1:


The error from hivemq states that the http server you have pointed it at to do the authentication has not responded.

You should check that those details are correct and that it responds as expected when you use something like curl to test it.



来源:https://stackoverflow.com/questions/33920600/paho-python-client-with-hivemq

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!