大佬教程收集整理的这篇文章主要介绍了我怎样才能以随机方式为每个 mqtt 客户端发布多条随机消息,而不是使用 python 客户端按顺序发布到同一个代理?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的python客户端代码,用于发布10个发布者的消息,我希望每个发布者不按顺序发送多条消息,例如客户端1可以发布消息然后客户端5然后客户端1可以再次发送另一条消息然后客户端9,以及以此类推。
import paho.mqtt.clIEnt as mqtt
import time
import os
import random
#variables
MQTT_HOST = "127.0.0.1"
MQTT_PORT = 1883
MQTT_KEEPAliVE_INTERVAL = 5
MQTT_topIC = "sampletopic"
MQTT_MSG = "Hello MQTT"
publishers = []
num_publishers = 10
#CallBACk Functions
def on_log(clIEnt,userdata,level,buf):
print("log: "+buf)
def on_connect(clIEnt,flags,rC):
if rc == 0 :
print("connected OK"+str(clIEnt))
mqttc.publish(MQTT_topIC,MQTT_MSG)
else:
print("Bad connection returned code = ",rC)
def on_disconnect(clIEnt,rc=0):
print("disconnected result code " +str(rC))
def on_message(clIEnt,msg):
topic = msg.topic
m_decode = str(msg.payload.decode("utf-8","ignore"))
print("message received",m_decodE)
def on_publish(clIEnt,mID):
print("message Published...")
time.sleep(random.randint(3,9))# sleep for 10 seconds before next call
for i in range(num_publishers):
#Initiate MQTT ClIEnt
ID = "Publisher "+str(i)
clIEnt = mqtt.ClIEnt(ID)
publishers.append(clIEnt)
try:
for mqttc in publishers:
#Binding CallBACk Functions
mqttc.on_connect = on_connect
mqttc.on_disconnect = on_disconnect
mqttc.on_message = on_message
mqttc.on_publish = on_publish
# mqttc.on_log = on_log
#connect with MQTT broker
mqttc.connect(MQTT_HOST,MQTT_PORT,MQTT_KEEPAliVE_INTERVAL)
#loop network
mqttc.loop_start()
time.sleep(0.5)
while True:
pass
except KeyboardInterrupt:
print("interrupted by keyboard")
os._exit(0)
我尝试了 paho.mqtt.publish.multiple() 但它不能满足我的要求。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的我怎样才能以随机方式为每个 mqtt 客户端发布多条随机消息,而不是使用 python 客户端按顺序发布到同一个代理?全部内容,希望文章能够帮你解决我怎样才能以随机方式为每个 mqtt 客户端发布多条随机消息,而不是使用 python 客户端按顺序发布到同一个代理?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。