LuatOS-SOC接口文档(air780E)--mqtt - mqtt客户端

常量

常量

类型

解释

mqtt.STATE_DISCONNECT

number

mqtt 断开

mqtt.STATE_SCONNECT

number

mqtt socket连接中

mqtt.STATE_MQTT

number

mqtt socket已连接 mqtt连接中

mqtt.STATE_READY

number

mqtt mqtt已连接

mqttc:subscribe(topic, qos)

订阅主题

参数

传入值类型

解释

string/table

主题

int

topic为string时生效 0/1/2 默认0

返回值

返回值类型

解释

int

消息id,当qos为1/2时有效, 若底层返回失败,会返回nil

例子

-- 订阅单个topic, 且qos=0
mqttc:subscribe("/luatos/123456", 0)
-- 订阅单个topic, 且qos=1
mqttc:subscribe("/luatos/12345678", 1)
-- 订阅多个topic, 且使用不同的qos
mqttc:subscribe({["/luatos/1234567"]=1,["/luatos/12345678"]=2})

mqttc:unsubscribe(topic)

取消订阅主题

参数

传入值类型

解释

string/table

主题

返回值

例子

mqttc:unsubscribe("/luatos/123456")
mqttc:unsubscribe({"/luatos/1234567","/luatos/12345678"})

mqttc:debug(onoff)

配置是否打开debug信息

参数

传入值类型

解释

boolean

是否打开debug开关

返回值

返回值类型

解释

nil

无返回值

例子


mqtt.create(adapter,host,port,ssl,isipv6)

mqtt客户端创建

参数

传入值类型

解释

int

适配器序号, 只能是socket.ETH0, socket.STA, socket.AP,如果不填,会选择平台自带的方式,然后是最后一个注册的适配器

string

服务器地址,可以是域名, 也可以是ip

int

端口号

bool/table

是否为ssl加密连接,默认不加密,true为无证书最简单的加密,table为有证书的加密
server_cert 服务器ca证书数据
client_cert 客户端证书数据
client_key 客户端私钥加密数据
client_password 客户端私钥口令数据
verify 是否强制校验 0不校验/1可选校验/2强制校验 默认2

bool

是否为ipv6 默认不是

返回值

返回值类型

解释

userdata

若成功会返回mqtt客户端实例,否则返回nil

例子

-- 普通TCP链接
mqttc = mqtt.create(nil,"120.55.137.106", 1884)
-- 加密TCP链接,不验证服务器证书
mqttc = mqtt.create(nil,"120.55.137.106", 8883, true)
-- 加密TCPTCP链接,单服务器证书验证
mqttc = mqtt.create(nil,"120.55.137.106", 8883, {server_cert=io.readFile("/luadb/ca.crt")})
-- 加密TCPTCP链接,单服务器证书验证, 但可选认证
mqttc = mqtt.create(nil,"120.55.137.106", 8883, {server_cert=io.readFile("/luadb/ca.crt"), verify=1})
-- 加密TCPTCP链接,双向证书验证
mqttc = mqtt.create(nil,"120.55.137.106", 8883, {server_cert=io.readFile("/luadb/ca.crt"),client_cert=io.readFile("/luadb/client.pem"),client_key="123456",client_password="123456",})

mqttc:auth(client_id,username,password,cleanSession)

mqtt三元组配置及cleanSession

参数

传入值类型

解释

string

设备识别id,对于同一个mqtt服务器来说, 通常要求唯一,相同client_id会互相踢下线

string

账号 可选

string

密码 可选

bool

清除session,默认true,可选

返回值

返回值类型

解释

nil

无返回值

例子

-- 无账号密码登录,仅clientId
mqttc:auth("123456789")
-- 带账号密码登录
mqttc:auth("123456789","username","password")
-- 额外配置cleanSession,不清除
mqttc:auth("123456789","username","password", false)
-- 无clientId模式, 服务器随机生成id, cleanSession不可配置
mqttc:auth()

mqttc:keepalive(time)

mqtt心跳设置

参数

传入值类型

解释

int

可选 单位s 默认240s. 最先15,最高600

返回值

返回值类型

解释

nil

无返回值

例子

mqttc:keepalive(30)

mqttc:on(cb)

注册mqtt回调

参数

传入值类型

解释

function

cb mqtt回调,参数包括mqtt_client, event, data, payload

返回值

返回值类型

解释

nil

无返回值

例子

mqttc:on(function(mqtt_client, event, data, payload, metas)-- 用户自定义代码log.info("mqtt", "event", event, mqtt_client, data, payload)
end)
--[[
event可能出现的值有conack -- 服务器鉴权完成,mqtt连接已经建立, 可以订阅和发布数据了,没有附加数据recv   -- 接收到数据,由服务器下发, data为topic值(string), payload为业务数据(string).metas是元数据(table), 一般不处理. -- metas包含以下内容-- qos 取值范围0,1,2-- retain 取值范围 0,1-- dup 取值范围 0,1sent   -- 发送完成, qos0会马上通知, qos1/qos2会在服务器应答会回调, data为消息iddisconnect -- 服务器断开连接,网络问题或服务器踢了客户端,例如clientId重复,超时未上报业务数据
]]

mqttc:connect()

连接服务器

参数

返回值

返回值类型

解释

boolean

发起成功返回true, 否则返回false

例子

-- 开始建立连接
mqttc:connect()
-- 本函数仅代表发起成功, 后续仍需根据ready函数判断mqtt是否连接正常

mqttc:disconnect()

断开服务器连接(不会释放资源)

参数

返回值

返回值类型

解释

boolean

发起成功返回true, 否则返回false

例子

-- 断开连接
mqttc:disconnect()

mqttc:autoreconn(reconnect, reconnect_time)

自动重连

参数

传入值类型

解释

bool

是否自动重连

int

自动重连周期 单位ms 默认3000ms

返回值

例子

mqttc:autoreconn(true)

mqttc:publish(topic, data, qos, retain)

发布消息

参数

传入值类型

解释

string

主题,必填

string

消息,必填,但长度可以是0

int

消息级别 0/1 默认0

int

是否存档, 0/1,默认0

返回值

返回值类型

解释

int

消息id, 当qos为1或2时会有效值. 若底层返回是否, 会返回nil

例子

mqttc:publish("/luatos/123456", "123")

mqttc:close()

mqtt客户端关闭(关闭后资源释放无法再使用)

参数

返回值

例子

mqttc:close()

mqttc:ready()

mqtt客户端是否就绪

参数

返回值

返回值类型

解释

bool

客户端是否就绪

例子

local error = mqttc:ready()

mqttc:state()

mqtt客户端状态

参数

返回值

返回值类型

解释

number

客户端状态

例子

local state = mqttc:state()

mqttc:will(topic, payload, qos, retain)

设置遗嘱消息

参数

传入值类型

解释

string

遗嘱消息的topic

string

遗嘱消息的payload

string

遗嘱消息的qos, 默认0, 可以不填

string

遗嘱消息的retain, 默认0, 可以不填

返回值

返回值类型

解释

bool

成功返回true,否则返回false

例子

-- 要在connect之前调用
mqttc:will("/xxx/xxx", "xxxxxx")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习快速入门教程 Scikit-Learn实现

机器学习是什么? 机器学习是一帮计算机科学家想让计算机像人一样思考所研发出来的计算机理论。他们曾经说过,人和计算机其实本没有差别,同样都是一大批互相连接的信息传递和存储元素所组成的系统。所以有了这样的想法,加上他们得天独厚的数学功底,机器学习的前身也就孕育而生…

746. 使用最小花费爬楼梯

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。 示例 1&#xff…

RHCSA -- VMware虚拟机配置及破解密码

一、配置虚拟机 1、开启VMware(自定义) 2、设置虚拟机硬件兼容性(默认) 3、稍后安装虚拟机操作系统 4、选择为Linux的虚拟机 5、虚拟机机名 6、设置虚拟机处理器 7、设置虚拟机所连接的网络类型 8、选择磁盘类型 9、设置所选磁…

【源码】医院绩效考核系统-对接HIS核算

医院绩效考核系统,它需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入)&…

CSS标点符号换行问题

最近遇到一个奇怪的现象,元素中中文文本正常显示,但是加了一堆符号后中文文本居然换行了. div{width: 200px;border: 1px solid blue;word-break: break-all;} <div>文本</div>经过研究发现&#xff0c;因为标点符号不允许出现在行首和行尾&#xff0c;连带着符号…

Kafka - 监控工具 Kafka Eagle:实时洞察Kafka集群的利器

文章目录 引言Kafka Eagle简介Kafka Eagle的特点Kafka Eagle的优势使用Kafka Eagle的步骤结论 引言 在现代大数据架构中&#xff0c;Apache Kafka已成为一个不可或缺的组件&#xff0c;用于可靠地处理和传输大规模的数据流。然而&#xff0c;随着Kafka集群规模的不断增长&…

第十四节——计算属性computed

一、概念 如果一个属性是由其他属性计算而来的&#xff0c;这个属性依赖其他属性&#xff0c;是一个多对一或者一对一&#xff0c;一般用computed computed 属性值会默认走缓存&#xff0c;计算属性是基于它们的响应式依赖进行缓存的&#xff0c;也就是基于data中声明过或者父…

QT基础学习笔记

文章目录 1 概述1.1 优点1.2 QT成功使用案例1.3 安装教程1.3.1 在线安装流程1.3.2 离线安装流程 2 创建工程2.1 快捷键2.1.1 常用快捷键2.1.2 修改快捷键 2.2 proj文件 3 对象树4 信号和槽4.1 自定义信号和槽4.1.1 信号连接信号4.1.2 一个信号连接多个槽函数4.1.3 多个信号连接…

【人工智能Ⅰ】4-蚁群算法

【人工智能Ⅰ】4-蚁群算法 文章目录 【人工智能Ⅰ】4-蚁群算法4.1 群智能概述群群智能 4.2 蚁群算法ACO概念特征 4.3 ACO伪代码4.4 TSP问题中的应用【1】初始化【2】选择路径【3】更新信息【4】输出结果 4.5 ACO基本思想4.6 关键参数选取4.7 算法参数设计策略组合参数设计策略终…

算法---缺失的第一个正数

题目 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例 1&#xff1a;输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 示例 2&#xff1a;输入&#xff1a;nums …

C++数据结构算法篇Ⅰ

C数据结构算法篇Ⅰ &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C算法 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 主要内容讲解数据结构中的链表结构 文章目录 C数据…

WSL安装Ubuntu

先安装wsl2 安装Ubuntu 打开windows商店&#xff0c;搜索对应版本的Ubuntu&#xff0c;点击获取进度跑完后&#xff0c;点击打开&#xff0c;就可以完成安装 删除Ubuntu版本 wsl --unregister Ubuntu-18.04安装位置迁移 正常情况下Ubuntu是被安装在C盘&#xff0c;我们需要…

什么是数字展览馆,数字展览馆有什么应用前景

引言&#xff1a; 数字展览馆作为一种新兴的文化艺术展示形式&#xff0c;以数字化技术和虚拟现实为基础&#xff0c;正在逐渐改变传统展览的方式。 一、什么是数字展览馆&#xff1f; 1.定义 数字展览馆是利用数字技术和虚拟现实技术打造的一种线上文化艺术展示平台。通过虚…

@reduxjs/toolkit配置react-redux解决createStore或将在未来被淘汰警告

通常 我们用redux都需要通过 createStore 但目前 你去用它 基本都会被划线 甚至有点厉害的的编辑器 他会直接告诉你这个东西基本快被弃用了 这个应该大家都知道 最好不要用已经被明确未来或弃用的语法 因为一旦弃用这个系统就需要维护 而且说 一般会被淘汰的语法 本身也就是有…

2023年免费CRM软件盘点:14款热门工具全面比较(含开源)

在初创企业或小型企业阶段&#xff0c;特别是在预算有限且客户管理需求较为基础的情境下&#xff0c;使用免费的CRM系统通常是一个理智的选择。这类系统虽然在功能上可能不如付费版本丰富&#xff0c;但基本的客户信息管理、销售跟踪和沟通记录等核心功能通常都能满足需求。 对…

Flink SQL Hive Connector使用场景

目录 1.介绍 2.使用 2.1注册HiveCatalog 2.2Hive Read 2.2.1流读关键配置 2.2.2示例

玩了一下 Jenkins,最新版本 + JDK11

背景 今年五月的时候玩了一下 Jenkins&#xff0c;最新版本 2.414.3 &#xff0c;JDK 11 。本机有两个 JDK&#xff0c;只放到 Tomcat 里面了&#xff0c;看到了一个启动页面&#xff0c;后面有其他事情就忘记了。最近又想起来&#xff0c;觉得还是应该玩一下这么有技术含量的…

对一个金融风控测额公式的理解

目录 公式&#xff1a;&#xff08;近3个月回款总额/过去3个月的FBA平均库存价值&#xff09;*最近FBA的库存价值*过去13周FBA发货比例 详细讨论一下这个&#xff1a;&#xff08;近3个月回款总额/过去3个月的FBA平均库存价值&#xff09; 既然&#xff08;近3个月回款总额/…

liunx相关指令以及操作(未完待续)

1. 安装unzip和zip apt需要超级用户权限&#xff0c;可能需要在sudo下运行如下命令 sudo apt update sudo apt install unzip zip2. 删除压缩文件 删除名为xxx的压缩文件 !rm -rf xxx.zip3. 删除文件夹及文件夹下的所有 删除名字为xxx的文件夹及其所有内容 !rm -rf xxx4.…

kafka生产者源码精华总结

kafka的源码阅读起来思路很清晰&#xff0c;命名也很规范。 KafkaProducer值得学习的地方&#xff1a; Kafka的网络部分的设计绝对是一个亮点&#xff0c;Kafka基于NIO封装了一套自己的网络架构&#xff0c;支持一个客户端与多个Broker建立连接。处理拆包和粘包的思路和代码&…