@cyysu
2017-10-13T10:58:58.000000Z
字数 1508
阅读 1045
- 时间:2017年10月13日
- 作者:Kali
- 邮箱:cyysu.github.io@gmail.com
- 版本:3.0
- 描述:mqtt Python教程测试
脚本编写
#!coding:utf-8 相信这句大家都懂的,不解释
import paho.mqtt.client as mqtt
import Queue
import threading
import json
import time as time
import socket
mqttQue = Queue.Queue(maxsize=5)
# 当连接上服务器后回调此函数
def on_connect(client, userdata, flags, rc):
print("MQTT client has connected to the mqtt server")
print("Connected with result code "+str(rc))
# 放在on_connect函数里意味着
# 重新连接时订阅主题将会被更新
#client.subscribe(mqttcfg['subTopic'])
# 从服务器接受到消息后回调此函数
def on_message(client, userdata, msg):
print("Topic: "+msg.topic+" Message: "+str(msg.payload))
def on_publish(client, userdata, mid): #发布消息完成回调函数
#print "mqttpub" + userdata
client.publish('pub', payload=userdata, qos=0, retain=False) #发布消息
def on_disconnect(client, userdata, rc):
if rc != 0:
print("Unexpected disconnection.")
time.sleep(2)
mqttClient()
def mqtt_handle(client):
#参数有 Client(client_id="", clean_session=True, userdata=None, protocol=MQTTv311, transport="tcp")
client.on_connect = on_connect #设置连接上服务器回调函数
client.on_message = on_message #设置接收到服务器消息回调函数
client.on_disconnect = on_disconnect #设置与服务器断开连接回调函数
#client.connect("116.236.184.244", 1883, 60) #连接服务器,端口为1883,维持心跳为60秒
client.connect("10.0.0.117", 1883, 60) #连接服务器,端口为1883,维持心跳为60秒
client.loop_forever()
def mqtt_setval(client):
global mqttQue
while 1:
on_publish(client,"123",123)
time.sleep(1)
def mqttClient():
mqttc = mqtt.Client("AtlasACQ")
t_setval = threading.Thread(target=mqtt_setval,args=(mqttc,))
t_setval.setDaemon(True)
t_setval.start()
mqtt_handle(mqttc)
def main():
mqttClient()
if __name__ == '__main__':
main()
支付宝 微信