--[[ @module mqtt_receiver @summary mqtt client数据接收处理应用功能模块 @version 1.0 @date 2025.07.29 @author 朱天华 @usage 本文件为mqtt client 数据接收应用功能模块,核心业务逻辑为: 处理接收到的publish数据,同时将数据发送给其他应用功能模块做进一步处理; 本文件的对外接口有2个: 1、mqtt_receiver.proc(topic, payload, metas):publish数据处理入口,在mqtt_main.lua中调用; 2、sys.publish("RECV_DATA_FROM_SERVER", "recv from mqtt server: ", topic, payload): 将接收到的publish中的topic和payload数据通过消息"RECV_DATA_FROM_SERVER"发布出去; 需要处理数据的应用功能模块订阅处理此消息即可,本demo项目中uart_app.lua中订阅处理了本消息; ]] local mqtt_receiver = {} --[[ 处理接收到的publish数据 @api mqtt_receiver.proc(topic, payload, metas) @param1 topic string 表示publish主题 @param2 payload string 表示publish数据负载 @param2 payload string 表示publish数据负载 @param3 metas table 表示publish报文的一些参数;格式如下: { qos: number类型,取值范围0,1,2 retain:number类型,取值范围0,1 dup:number类型,取值范围0,1 message_id: number类型 } @return1 result nil @usage mqtt_receiver.proc(topic, payload, metas) ]] function mqtt_receiver.proc(topic, payload, metas) log.info("mqtt_receiver.proc", topic, payload:len(), json.encode(metas)) -- 接收到数据,通知网络环境检测看门狗功能模块进行喂狗 sys.publish("FEED_NETWORK_WATCHDOG") -- 将topic和payload通过"RECV_DATA_FROM_SERVER"消息publish出去,给其他应用模块处理 sys.publish("RECV_DATA_FROM_SERVER", "recv from mqtt server: ", topic, payload) -- 也可以直接在此处编写代码,处理topic和payload end return mqtt_receiver