NodeMCU模块之mqtt

mqtt模块

先上简单的代码

    m = mqtt.Client(sb_bianhao, 120, username, password)
    m:lwt("csxg", "0001", 0, 0)
    -- 设置连接ip 以及 端口
    m:connect(host, 1883, 0)
    m:on("connect", function(con)
        print ("lianjie_OK!") 
        -- 连接成功后进行订阅频道
        --m:subscribe("csxg",0, function(conn) print("subscribe success") end)
        --订阅多个频道
        m:subscribe({[topic1]=0,[topic2]=0}, function(conn) print("dingyue_OK") end)
        dofile("caozuo.lua")
        --dofile("caozuo1.lua")
        end)
mqtt.Clien : 建立一个mqtt客户端,

参数为 客户端id,保持活动时间(秒),用户名,密码

mqtt.Clien:lwt :设置遗嘱和遗嘱(可选)。

参数:发布的主题,发布的消息内容,消息等级,保留标志默认为0

mqtt.client:connect() :连接到给定主机、端口和安全选项配置

参数:主机域名或ip,主机端口号(默认1883),安全等级(默认为0)

mqtt.client:on() : 为事件注册回调函数

参数1:可以是"connect", “message” or “offline” ,链接,消息,脱机
参数2: 回调函数。第一个参数是客户端链接配置,可以如例程,也可以直接写配置在这里。如果事件为“message”,则接收第2和第3个参数的主题和消息(字符串)

mqtt.client:subscribe() :订阅主题

订阅1个主题:
subscribe(“csxg”,0, function(conn) print(“subscribe success”) end)
参数:主题名字,消息等级,回调函数(成功订阅后打印(“subscribe success”))
订阅多个主题:
subscribe({[topic1]=0,[topic2]=0}, function(conn) print(“dingyue_OK”) end)
参数1{[topic1]=0,[topic2]=0} :订阅主题1名字,1订阅的消息等级。订阅主题2名字,2消息等级
参数2:回调函数。成功订阅打印(“dingyue_OK”)

发布信息

m:on("message", function(con, topic, data) 
      print("receive mag1:"..data)
     local ok, js = pcall(sjson.decode, data)
     --"收到消息后的处理逻辑"
        -- tostring 将数字变字符
        zt = {sbbianhao = sb_bianhao,kg_bianhao = kg01,jiancha = tostring(io1)}
        ok, zt2 = pcall(sjson.encode, zt)
        m:publish(topic1, zt2, 0, 0, function(client) end)
        end)
mqtt.client:publish() : 发布消息

参数:主题名字,消息等级,保留参数,成功后的回调函数

猜你喜欢

转载自blog.csdn.net/oXingChenWuJi/article/details/83960999