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() : 发布消息

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值