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为有证书的加密 |
| 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")
相关文章:
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) 订阅主题 参数 …...
安装Python环境
Python 安装包下载地址:https://www.python.org/downloads/ 打开该链接,可以看到有两个版本的 Python,分别是 Python 3.x 和 Python 2.x,如下图所示: Python下载页面截图 图 1 Python 下载页面截图(包含…...
[nodejs] 爬虫加入并发限制并发实现痞客邦网页截图
今晚想给偶像的相册截个图,避免某一天网站挂了我想看看回忆都不行,用的是js的木偶师来爬虫台湾的部落格,效果图大概是这样,很不错 问题来了.我很贪心, 我想一次性把相册全爬了,也就是并发 ,这个人的相册有19个!!我一下子要开19个谷歌浏览器那个什么进程, 然后程序就崩了, 我就想…...
GEE——Publisher Data Catalogs发布者数据目录
发布者数据目录 发布者数据目录由数据集发布者策划,供更大范围的 Google 地球引擎社区使用,并作为地球引擎资产集公开共享。这些目录并非由 Google 编制。这里是GEE团队简政放权的一个过程,也就是说这些数据集的后续更新和维护并不由GEE团队负…...
计算10的阶乘
一、不好的写法 public static void main(String[] args) {long fun fun(10);System.out.println(fun);}public static long fun(long n) {if (n 1) {return 1;}return n * fun(n - 1);}使用递归完成需求,fun1方法会执行10次,并且第一次执行未完毕&…...
6.卷积神经网络
#pic_center R 1 R_1 R1 R 2 R^2 R2 目录 知识框架No.1 卷积层一、从全连接到卷积二、卷积层三、代码四、QA No.2 卷积层里的填充和步幅一、填充和步幅二、D2L代码注意点三、QA No.3 卷积层里的多输入和多输出通道一、多输入和多输出通道二、D2L代码注意点三、QA No.4 池化层…...
postgresql|数据库|SQL语句冲突的解决
前言: postgresql数据库是比较复杂的一个关系型数据库,而有些时候,即使是简单的插入更新操作也是有很多复杂的机制。 那么,什么是冲突?什么时候会遇到冲突(也就是冲突的常见场景)?…...
overflow溢出属性、定位、前端基础之JavaScript
overflow溢出属性 值 描述 visible 默认值。内容不会被修剪,会呈现在元素框之外。 hidden 内容会被修剪,并且其余内容是不可见的。 scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。 auto 如果内容被修剪࿰…...
【JS】Chapter6-Dom 获取属性操作
站在巨人的肩膀上 黑马程序员前端JavaScript入门到精通全套视频教程,javascript核心进阶ES6语法、API、js高级等基础知识和实战教程 (六)Dom 获取&属性操作 以下的变量可以将 let 改为 const: let arr [red, green] arr.pu…...
太极培训机构展示服务预约小程序的作用如何
太极是适合男女老幼的,很多地方也有相关的学校或培训机构,由于受众广且不太受地域影响,因此对培训机构来说,除了线下经营外,线上宣传、学员获取和发展也不可少。 接下来让我们看下通过【雨科】平台制作太极教培服务预…...
node使用path模块的基本使用
文章目录 一、path.resolve(常用)二、path.sep三、path.parse其他 一、path.resolve(常用) 由于node 中使用 __dirname 获取的绝对路径是/ ,而我们拼接的路径为‘/’导致路径不统一。 作用:拼接规范的绝对路径 const fs require(fs) const path require(path)// 1…...
我和云栖大会有个约会
前言 云栖大会(Alibaba Cloud Computing Conference)是中国阿里巴巴集团旗下的云计算技术盛会,旨在推动云计算技术的发展和应用。该大会自2009年首次举办以来,已成为云计算行业内规模最大、影响力最广的会议之一。 云栖大会每年…...
Linux各个发行版之间的关系
Linux各个发行版之间的关系 可以查看链接:Linux Timeline 链接中可以下载PNG或者SVG图片...
第一章 第一行Android代码
一、Android简介 1.android系统架构 linux kernel(Linux内核层):提供硬件底层驱动 libraries(系统运行库层):提供了主要的特性支持,如SQLite库、Webkit库;还包含android runtime&…...
怎样利用 AI 大模型,辅助研发管理与效能提升?
AI 大模型已经逐渐渗透到各行各业的应用场景中,在软件研发领域也不例外。在软件研发领域,从需求分析到软件设计,从软件开发到测试,以及最后发布上线,AI 在各个环节都发挥着重要作用。10 月 21 日,思码逸首席…...
聊天室的创建
要创建一个聊天室,您需要: 确定聊天室的主题和目的。 选择一个适当的聊天室平台或应用程序,如Discord、Slack、Zoom等。 注册一个账户并创建一个聊天室。 添加您的朋友或家人或需要的人到聊天室中。 设置聊天室的规则和管理机制ÿ…...
大数据信息抽取
随着互联网的广泛应用和技术的不断进步,海量数据被产生、存储和共享。这些数据中包含着宝贵的的信息和知识,二大数据信息抽取是正是为了把这些数据中关键、有用的信息提取出来。 大数据信息抽取就是指通过自动化的方式,从大数据中提取有异议…...
驱动开发11-1 编写IIC驱动-读取温湿度数据
头文件 head.h #ifndef __HEAD_H__ #define __HEAD_H__ #define GET_HUM _IOR(m, 1, int) #define GET_TEM _IOR(m, 0, int) #endif 应用程序 si7006.c #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #inc…...
上海中优城市万豪酒店推出全新国际IP童趣主题房,独特住宿体验中国首秀
2023年10月30日,中国上海 – 近日,上海中优城市万豪酒店正式推出由全球品牌娱乐公司孩之宝官方授权打造的小马宝莉和变形金刚主题客房,以创意客房、新奇体验和丰富礼遇,为童游家庭或年轻的动漫迷们开启沉浸式入住之旅,…...
zsh和bash之间互相切换
zsh->bash exec bashbash->zsh exec zsh...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...
