python--mqtt后台消息的接收与转发

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

# 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()

 

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值