如何解决MQTT上的WinError 10061
当我通过使用线程构建大约5000个MQTT客户端时,出现如下错误消息[WinError 10061]。
import paho.mqtt.client as mqtt
import threading
def client(id):
subscriber=mqtt.Client(id)
subscriber.on_connect=on_connect
subscriber.on_message=on_message
subscriber.connect('192.168.233.142',keepalive=20)
subscriber.loop_forever()
def on_connect(subscriber,userdata,flags,rc):
if int(subscriber._client_id.decode())%1000==0:
logging.info('連接伺服器')
def on_message(subscriber,msg):
message=str(loads(msg.payload.decode()))
if int(subscriber._client_id.decode())%1000==0:
logging.info(message)
for i in range(5001):
threading.Thread(target=client,args=(str(i),)).start()
sleep(0.01)
在其他程序中使用ZMQ.SUB之前,我已经看到此错误,但是客户端数量超过10000。
连接过多是否会导致此问题?
如果为true,是什么使这两个软件包有巨大的区别?
解决方法
Google说“ Win10061”是一个“拒绝连接”错误...。因此,请查看您的MQTT Broker的日志文件,并查看其内容....即发生错误的地方。
大多数MQTT代理应该能够处理5000个连接,但是也许启动时它们之间的距离太近,而MQTT代理却太忙于尝试更新其客户表并推出CONACKs?
错误在哪里出现?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。