Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的require help client.loop_forever()错误(mqtt paho)_Python_Localhost_Hivemq - Fatal编程技术网

python中的require help client.loop_forever()错误(mqtt paho)

python中的require help client.loop_forever()错误(mqtt paho),python,localhost,hivemq,Python,Localhost,Hivemq,这是我的代码,它连接、发布并读取本地主机服务器中出现的消息 import time import paho.mqtt.client as paho broker="localhost" def on_message(client, userdata, message): time.sleep(1) print("received message =", str(message.payload.decode("utf-8&

这是我的代码,它连接、发布并读取本地主机服务器中出现的消息

import time

import paho.mqtt.client as paho


broker="localhost"


def on_message(client, userdata, message):
    time.sleep(1)
    print("received message =", str(message.payload.decode("utf-8")))

client = paho.Client("client-001")
client.on_message = on_message

print("connecting to broker ", broker)
client.connect(broker, port=1883)#connect
client.loop_start() #start loop to process received messages
print("subscribing ")
client.subscribe("anyisfine")#subscribe
time.sleep(2)
print("publishing ")
#client.publish("anyisfine", "on")#publish
client.publish("anyisfine", "on")#publish
time.sleep(4)
client.loop_forever()
我得到的错误是这个

connecting to broker  localhost
subscribing 
publishing 
received message = on
Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Users\simba\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\simba\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 3452, in _thread_main
    self.loop_forever(retry_first_connection=True)
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 1779, in loop_forever
    rc = self.loop(timeout, max_packets)
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 1181, in loop
    rc = self.loop_read(max_packets)
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 1572, in loop_read
    rc = self._packet_read()
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 2266, in _packet_read
    byte = self._sock_recv(1)
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 664, in _sock_recv
    return self._sock.recv(bufsize)
AttributeError: 'NoneType' object has no attribute 'recv'

有时候,即使是这个,这也要视情况而定

connecting to broker  localhost
subscribing 
publishing 
received message = on
Traceback (most recent call last):
  File "C:/Users\simba/PycharmProjects/hivemqq/main.py", line 27, in <module>
    client.loop_forever()
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 1779, in loop_forever
    rc = self.loop(timeout, max_packets)
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 1181, in loop
    rc = self.loop_read(max_packets)
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 1572, in loop_read
    rc = self._packet_read()
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 2295, in _packet_read
    data = self._sock_recv(self._in_packet['to_process'])
  File "C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site-packages\paho\mqtt\client.py", line 664, in _sock_recv
    return self._sock.recv(bufsize)
AttributeError: 'NoneType' object has no attribute 'recv'

Process finished with exit code 1

连接到代理本地主机
订阅
出版
接收到的消息=打开
回溯(最近一次呼叫最后一次):
文件“C:/Users\simba/PycharmProjects/hivemqq/main.py”,第27行,在
client.loop_forever()
文件“C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site packages\paho\mqtt\client.py”,第1779行,循环中
rc=self.loop(超时,最大数据包数)
文件“C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site packages\paho\mqtt\client.py”,第1181行,在循环中
rc=自循环读取(最大数据包数)
文件“C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site packages\paho\mqtt\client.py”,第1572行,循环读取
rc=自。\数据包\读取()
文件“C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site packages\paho\mqtt\client.py”,第2295行,已读取
数据=self.\u sock.\u recv(self.\u in_数据包['to_进程]])
文件“C:\Users\simba\PycharmProjects\hivemqq\venv\lib\site packages\paho\mqtt\client.py”,第664行,位于
返回自存储地址(bufsize)
AttributeError:“非类型”对象没有属性“recv”
进程已完成,退出代码为1

最后,它有时会成功地连接到单个发布,但随后不会读取传入的消息,有时一切正常,直到它不工作为止(每次随机)。然后它将给出这两个错误中的一个。任何帮助都将不胜感激。

我正在使用pycharm顺便说一句,当我与其他计算机上的broker()连接(
Raspberry Pi
)时,社区编辑代码对我有效。代码也可以与本地broker
hivemq
。若您在控制台中运行代理,那个么您应该检查
broker
是否显示任何错误消息。使用Google
AttributeError:'NoneType'对象并没有属性
我发现:furas,您使用什么ide使其工作?