# coding=utf-8
#接收数据代码模块
import paho.mqtt.client as mqtt
import json
def on_message(client, userdata, msg,user_id = XXX):
data = str(msg.payload)
jsonDict = json.loads(data)
if(jsonDict is not None) and (jsonDict.has_key('runData')):
if (jsonDict['runData'] is not None):
userId = jsonDict['runData'].get("userId", None)
if(userId == user_id):
print("主题--:"+msg.topic+" 消息:"+str(msg.payload))
if(jsonDict is not None) and (jsonDict.has_key('configData')):
if (jsonDict['configData'] is not None):
userId = jsonDict['configData'].get("userId", None)
if(userId == user_id):
print("主题--:"+msg.topic+" 消息:"+str(msg.payload))
# 当连接上服务器后回调此函数
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
# 从服务器接受到消息后回调此函数
# def on_message(client, userdata, msg):
# print("主题:"+msg.topic+" 消息:"+str(msg.payload))
def on_subscribe(client, userdata, mid, granted_qos):
print "On Subscribed: qos = %d" % granted_qos
# print "client: "+ str(client) + " userdata :"+str(userdata) + " mid:"+str(mid) + " granted_qos:"+str(granted_qos)
def on_log(client, userdata, level, buf):
print "%s: %s"%(level,buf)
client = mqtt.Client()
client.on_connect = on_connect #设置连接上服务器回调函数
client.on_message = on_message #设置接收到服务器消息回调函数
client.connect(host=xxxxxx,port=xxx) #连接服务器,端口为xxx,维持心跳为60秒
client.loop_forever()
#产生数据模块
import paho.mqtt.client as mqtt
import time
mqttc = mqtt.Client()
mqttc.connect(host=xxxxxx,port=xxx)
mqttc.publish("clife/deviceTypeId_31/configData/topic",
'{"configData":{"deviceId":XXX,"deviceTypeId":XXX,"deviceSubTypeId":XXX,"productId":XXX,"skM":XXX,"avW":XXX,"avO":XXX,"avE":XXX,"skT":XXX,"meT":"2016-11-18 04:48:48","location":"101280601","userId":,"cuA":0}}')
mqttc.disconnect()

该博客主要介绍了如何使用Python的paho-mqtt库来实现后台服务对MQTT消息的接收和转发。通过定义`on_message`函数处理接收到的数据,检查其中的`runData`和`configData`,根据用户ID进行过滤并打印消息。同时,展示了连接MQTT服务器、订阅主题和断开连接的代码片段。
556

被折叠的 条评论
为什么被折叠?



