-
昨天和你们这边沟通886T版本获取ip的指令是:mosquitto_pub -t "app1/get/request/esdk/ipAddr" -m '{"token": "12345","timestamp": "2018-03-28T08:33:43Z","body":{"dev": ["FE0"]}}'还需要886T添加ip、删除ip的命令,望回复,谢谢!
-
【功能模块】编译时找不到MQTT函数接口,编译出错【操作步骤&问题现象】1、使用官网的64位容器2、然后使用https://github.com/eclipse/paho.mqtt.c/tree/v1.1.0连接下载1.1版本,使用CC=aarch64-linux-gnu-gcc进行paho.mqtt.c安装,安装成功2、然后进行编译,出错我们之前使用的是ECcore,当时容器内置的libpaho-mqtt*.so库,然后现在编译不了。然后我们是南京莱斯公司的【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
订阅mqtt消息mosquitto_sub -t "esdk/get/response/app1/ipaddr" -d &获取ipmosquitto_pub -t "app1/get/request/esdk/ipaddr" -m '{"token": "12345","timestamp": "2018-03-28T08:33:43Z","body":{"dev": "FE0"}}'在平高板上拿到ip,执行正常,上图:但是在华为板上订阅不到ip消息
-
搜了一下,没有找到 一型一密的mqtt接入介绍。一型一密,取消了吗?谢谢
-
【功能模块】 设备连接华为云IoT MQTT【操作步骤&问题现象】1、通过MQTT.fx,用工具生成password可以连接上,设备端怎样生成password【截图信息】Password必选String(256)加密后的设备密钥。Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值。secret为注册设备时平台返回的secret。【日志信息】(可选,上传日志内容或者附件)
-
>本文仅供学习参考,通过自己在云服务器搭建Mqtt服务器,更深入的了解MQTT协议。 # 一、效果 - 在云服务器上安装EMQ服务器,实现MQTT服务器的搭建 - 更改EMQ默认密码 - 更改连接权限,进行数据库认证 # 二、准备工作 ## 1.购买云服务器 >本地服务器也可以。但是为了设备接入以及操作的方便,还是建议在云服务器进行。 买一个低配置的服务器就可以,比如我购买的是轻量应用服务器,CentOS Ubuntu18.04、1核、内存2G、系统盘40G。 ## 2.开放相应的端口号、允许远程连接。 使用EMQ,至少需要开放的端口号:1883、18083、8083、8883、8084。可以在控制台里面的防火墙(安全组)设置。 同时,为了在本地通过ssh连接服务器,需要开放端口号22,同时允许远程连接。 ## 3.连接自己的云服务器。 建议直接通过Cmd进行SSH连接(windows用户)。 即ssh root@ip (ip为你云服务器的公网ip) 输入密码时,是不会有字符显示的哦~  # 三、部署EMQ >以下是通过docker安装,详细内容请参考[EMQ官网](#) ## 1.配置docker CE >Ubuntu操作系统,其他操作系统可以自行百度配置。 连接服务器后,只需要6个命令,通过apt-get安装docker(阿里云镜像),步骤如下: ``` # step 1:更新 sudo apt-get update # step 2: 安装必要的系统工具 sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 3: 安装GPG证书 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # step 4: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # step 5: 更新 sudo apt-get -y update # step 6:安装Docker-CE sudo apt-get -y install docker-ce ``` 成功安装后,输入docker -v可查看docker版本。 ## 2.获取镜像 执行命令:$ docker pull emqx/emqx:v4.0.0 即让docker下载emq镜像,存储在硬盘中。 下载完成后,输入 docker images 可以已经拥有的镜像。 ## 3.启动emq 执行命令:$ docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.0 启动emq,成功启动后,执行 docker ps 可以看到emq容器正在运行  ---- **EMQ自带有一个前端页面,可以通过 ip:18083进入。默认账号:admin;密码:public** **大功告成,emq已经完成部署,接入设备试一下吧~**  # 四、更改默认账户密码 进入服务器控制台页面(IP:18083),默认账号:admin,密码:public。 点击ADMIN,可以在Setting中切换语言为中文。 在ADMIN->Users选项中,设置自己的新密码  # 五、连接数据库 ##1.数据库新建表 通过mysql新建一个用户表格 ``` CREATE TABLE `mqtt_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL, `password` varchar(100) DEFAULT NULL, `salt` varchar(35) DEFAULT NULL, `is_superuser` tinyint(1) DEFAULT 0, `created` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `mqtt_username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` ## 2.修改配置文件 ### a.关闭匿名登录。 修改emq.conf(文件在安装EMQ目录的./etc中) ``` mqtt.allow_anonymous = false // 修改为false ``` ### b.修改默认mysql配置 >mysql版本为mysql5,mysql8会有不同! 进入etc/plugins/emqx_auth_mysql.conf,修改emqx_auth_mysql.conf ``` ## 服务器地址 auth.mysql.server = 127.0.0.1:3306 ## 连接池大小 auth.mysql.pool = 8 auth.mysql.username = emqx auth.mysql.password = public auth.mysql.database = mqtt auth.mysql.query_timeout = 5s ``` 只需修改为你的msyql信息即可。(ip:port、username、password) ---注意:如果你是通过docker安装,进入emq目录方式为:docker exec -ti emqx /bin/sh 退出:ctrl + P + Q --- ### 三、设置连接权限 添加插件,在web控制页面中,选择 MANAGEMENT->Plugins,找到emqx_auth_mysql 让他running  此时,你再连接你的mqtt服务器时,你发现你会连接失败!说明你已经设置成功Mysql认证,在数据库里面添加你需要接入设备的ID、密码即可~ --- # 六、容器的开启、停止 - 查看:docker ps / docker images - 停止:docker stop emqx - 打开:docker start emqx --- **好了,此时你就已经拥有了自己的MQTT服务器,同时其他人未经允许也不能够轻易的访问或使用你的MQTT服务器,快去尝试吧~~**
-
摘要本实验以 EMQ X MQTT Broker 为例,指导用户快速完成物联网消息服务器搭建。实验属性l 难易程度:初级l 实验时长:120分钟实验目标与基本要求使用户掌握 EMQ X 安装流程,了解 EMQ X 基本配置以及启动方式,通过自行选择并下载安装包完成安装、启动、测试步骤。实验摘要1. 选择并下载安装包2. 安装并启动 EMQ X3. 接入使用 EMQ X实验步骤0. 领取代金券,购买测试云服务器。 领券链接:https://bbs.huaweicloud.com/forum/thread-73912-1-1.html 购买云服务器:https://www.huaweicloud.com/product/ecs.html 此处选择ubuntu服务器。1. 选择并下载安装包1.1 安装方式对于 Linux 环境,EMQ X 提供两种方式的安装。 一是基于各 linux 发布的安装包。用安装包安装 EMQ X 以后,可以方便的使用系统管理工具来启停 EMQ X 服务。 二是使用 zip 压缩打包的通用包。安装 zip 包只需解压 zip 文件即可。使用 zip 包可以实现在同一个系统下安装多套 EMQ X。在开发/实验室环境下使用 zip 包安装 EMQ X 非常实用。1.2 下载安装包本地打开浏览器,输入 https://www.emqx.io/cn/downloads。选择 EMQ X Broker 或 EMQ X Enterprise,选择 EMQ X 版本与操作系统类型。此实验中选择 EMQ X Broker 最新版 4.1.1,操作系统选择 Linux > Ubuntu 16.04,选择安装包类型为 zip。进入购买的云服务器的控制页面,打开命令行,执行 wget https://www.emqx.io/cn/downloads/enterprise/v4.1.1/emqx-ee-ubuntu16.04-4.1.1-aarch64.zip获取安装包。 2. 安装并启动 EMQ X2.1 解压安装包打开命令行,使用命令切换至下载目录cd /home/user/Downloads/使用命令解压安装包。 unzip emqx-ubuntu16.04-v4.1.1.zip解压之后会得到 ./emqx 文件夹,进入该文件夹即可。 2.2 启动 EMQ X使用 ./bin/emqx start 命令启动 EMQ X,启动成功后使用 ./bin/emqx_ctl status 或 ./bin/emqx ping 命令查看启动状态:./bin/emqx startemqx 4.1.1 is started successfully!./bin/emqx_ctl statusNode 'emqx@127.0.0.1' is startedemqx 4.1.1 is running 运行中的 EMQ X 可以使用 ./bin/emqx stop 命令停止:./bin/emqx stopok2.3 Console 模式启动使用 console 模式启动可以获得 EMQ X 启动信息,日志将在控制台输出,非常适用于初次启动排错、开发调试等。使用 ./bin/emqx console 命令即可以 Console 模式启动 EMQ X:./bin/emqx consoleStarting emqx on node emqx@127.0.0.1Start http:management listener on 8081 successfully.Start http:dashboard listener on 18083 successfully.Start mqtt:tcp listener on 127.0.0.1:11883 successfully.Start mqtt:tcp listener on 0.0.0.0:1883 successfully.Start mqtt:ws listener on 0.0.0.0:8083 successfully.Start mqtt:ssl listener on 0.0.0.0:8883 successfully.Start mqtt:wss listener on 0.0.0.0:8084 successfully.EMQ X Broker 4.1.1 is running now!Eshell V10.7.1 (abort with ^G)(emqx@127.0.0.1)1> 3. 接入使用 EMQ X3.1 使用 EMQ X DashboardEMQ X 提供了 Dashboard 以方便用户管理设备与监控相关指标。通过 Dashboard,你可以查看服务器基本信息、负载情况和统计数据,可以查看某个客户端的连接状态等信息甚至断开其连接,也可以动态加载和卸载指定插件。除此之外,EMQ X Dashboard 还提供了规则引擎的可视化操作界面,同时集成了一个简易的 MQTT 客户端工具供用户测试使用。 EMQ X 正常启动的情况下,在浏览器中输入网址 http://EIP:18083 即可访问 EMQ X Dashboard,默认的用户名和密码分别为 admin/public。EIP为云服务器的公网IP,另外云服务器的安全组需要打开18083端口。3.2 建立 MQTT 连接登录 Dashboard 后,依次点击 工具 -> WebSocket 打开 WebSocket 测试工具,在该页面输入 MQTT 连接信息,点击连接按钮即可连接至 EMQ X。输入待订阅的主题并进行订阅,输入主题、消息进行发布、选择 QoS 发布一条消息,消息发出之后,订阅消息列表应当能立即收到发出的消息。 3.3 结束实验关闭浏览器,按照 2.2 中的步骤停止 EMQ X 完成实验。结束实验之后,请及时删除云服务器,避免继续扣费。
-
publish没问题 可以正常发放到云平台。但是subscribe有点疑问。首先已经正常订阅到云平台的topic就是发放命令的时候,必须从这儿发送命令,调试助手才能接收到但是从调试界面却怎么也收不到如图的设备调试界面这个发送我点了好多次 助手一直接收不到
-
网上查了资料,实际动手的时候踩了很多坑,现在把我的经验分享给大家:一、安装和启动使用EMQTT,下载完直接到bin目录下执行emqttd start就可以了,简单方便下载地址:https://www.emqx.io/cn/downloads#broker大家下载2.X.X版本,不要下载最新版本,最新版本有修改,使用上述方法测试不通(也可能是本人使用的方法不对,如果有人测试过了可以悄悄告诉我 :)打开http://127.0.0.1:18083/#/就可以进入dashboard界面,默认登录账号密码是admin/public,这个账号密码是在 安装目录\etc\plugins的emq_dashboard.conf中配置的:Dashboard界面:二、使用mqtt client进行测试服务器搭好后就可以测试我们的client端了。本人搭建这个MQTT服务器是为了调测client端的代码。在client端配置好服务器对接地址,端口是1883(MQTT非加密协议端口是1883),用户名和密码这时可以随便写,因为EMQTT默认不对用户名密码进行验证。如果客户端和服务器在同一台机器上,那么serverIp_也可以设置为127.0.0.1运行客户端程序后就可以在Dashboard看到publish的主题:订阅的主题:client端的数据上报成功了(Dashboard上没找到具体的数据,但从client端和dashboard上的主题和消息数量看是成功了),下一步就是从broker给我的client发消息了,这一步没在网上找到攻略或指导,是我自己尝试出来的...进入Websocket页面,点击连接(不要修改上面的连接参数,直接点击连接即可):当状态变成已连接后,在下面的消息中,修改主题,主题要使用client端订阅的主题之一(否则client收不到),修改消息内容和Qos(服务质量),点击发送即可此时可以在client端收到消息:如果要在Websocket客户端中看到我用代码写的客户端发的消息,可以在Websocket订阅我的client端发的消息主题:当我的client端发送消息时就可以在下面的订阅消息列表中看到消息内容了:MQTT的主体有三种角色:这里的代理(Broker)就是我们搭建的EMQTT服务器,发布者和订阅者可以相互转换:A发布消息,B订阅 <--> B发布消息,A订阅上面的例子中有除了代理,还有两个角色,一个是我自己写的代码程序客户端,另一个是Dashboard上起的Websocket客户端,这两个客户端就是发布者和订阅者。
-
说明:最近做项目要用到M5311模块对接华为云,遇到了不少坑。最后成功了。关于这个网上资料很少,我几乎没找到很有用的资料。做的过程中就想着等做出来了写篇教程。本文目的:1、让大家避坑,节省时间。2、分享技术。 刚开始要着手解决这个问题的时候很懵。首先买了M5311模块(NB-IOT模块的一种),拿到模块相关资料之后,感觉好像没有针对我的应用的资料。然后资料中各种内容一大堆,表示看不太懂。。。后来,就有了这篇文章。技术关键词:NBIOT、M5311、MQTT协议、华为云、JSON数据格式、STM32单片机、USART通信。一、简介我要实现的功能:用STM32F1控制M5311模块通过MQTT协议(MQTT协议模块内部已经集成了,我们只需要调用相关AT指令就可以了)对接华为云平台,实现数据的上传与下发。针对我的应用的主要资料:(1) M5311的AT指令(包括MQTT有关的AT指令)(2) 华为云平台官方的开发指南二、AT流程-----------基础AT指令--------------模块开机|AT| res: OK\r\nATE0 //关闭AT指令回显,节省单片机接收缓冲区的空间| res:OK\r\nAT+CMSYSCTRL=0,2 //设置LED指示网络状态| res: OK\r\nAT+SM=LOCK_FOREVER //设置不休眠模式| res:OK\r\nAT+CLPLMN //清除注网记录| res: +CLPLMN:空格0\r\n \r\n OK\r\nAT+CEDRXS=0,5 //关闭eDRX功能| res: OK\r\nAT+CPSMS=2,,,"01001111","00100010" //关闭PSM功能| res: OK\r\nAT+CIMI //确认读SIM卡正常| res:460043193208917\r\n \r\n OK \r\n AT+CSQ //查询信号质量| res:+CSQ:空格9,0\r\n \r\nOK\r\nAT+CEREG? //确认基站注册状态 (第二位:1本地已注册,5**已注册)| res: +CEREG:空格0,1\r\n\r\nOK\r\nAT+CGATT? //确认PDP激活状态(1已激活,0未激活)| res: +CGATT: 空格1\r\n\r\nOK\r\nAT+CEREG=5 //For a UE that wants to apply PSM, enable network registration| res:OK\r\nAT+CEREG? //确认 PSM 参数是否设置成功| res: +CEREG:空格5,1,"3FE9","0CA3D416",9,"00",0,0,"00100010","11100000"\r\n\r\nOK\r\n注意:有关MQTT的AT指令的参数需要根据自己的实际情况修改。-------------MQTT协议AT指令------------------------AT+MQTTCFG="iot-mqtts.cn-north-4.myhuaweicloud.com",1883,"5eaaa3ed3766a6040511451a_123_0_0_2020043018",120,"5eaaa3ed3766a6040511451a_123","35415eb57f16397205d0056ca4269fa90fc17c4dbcbc8a8f717b48dcea70d3a3",1(说明:1、第三个参数”客户端ID“必须按照华为云平台要求的格式,即:设备ID+下划线+0或1+下划线+0或1+下划线+时间戳 (具体参考平台官方文档中:”文档首页 > 设备接入 IoTDA > API参考> 设备侧MQTT接口参考> 设备连接鉴权“有关内容 ) 2、第四个参数”用户名“即华为云平台中的设备ID 3、第五个参数”密码“的值为使用“HMACSHA256”算法以时间戳为密钥,对平台密钥(创建设备时你自己设置的)进行加密后的值。)| res:OK\r\nAT+MQTTOPEN=1,1,0,0,0,"","" //发送连接建立请求| res:OK\r\n\r\n+MQTTOPEN:空格OK\r\n//注意:从这里往下的内容就有老版本和新版本之分了,我下边的示例都是用的新版本V5版本的topic(topic即主题),若需要老版本V3版本的topic可以去开发文档里找。新老版本的主要区别之一就是平台默认的topic不同。AT+MQTTSUB="$oc/devices/5eaaa3ed3766a6040511451a_123/sys/commands/#",0 //订阅平台命令下发topic|AT+MQTTSUB="$oc/devices/5eaaa3ed3766a6040511451a_123/sys/properties/set/#",0 //订阅平台设置属性主题(订阅这个topic的目的是,你在平台上修改设备影子的期望值后,设备能够收到平台下发的期望值)----------------------------------设备上报属性:AT+MQTTPUB="$oc/devices/5eaaa3ed3766a6040511451a_123/sys/properties/report",0,1,0,116,7B227365727669636573223A5B7B22736572766963655F6964223A227331222C2270726F70657274696573223A7B224461746131223A2253544D333220636F6E74726F6C204D3533313120636F6E6E65637420746F2048554157454920636C6F756420544553542042592048575121227D7D5D7D平台命令下发响应:AT+MQTTPUB="$oc/devices/5eaaa3ed3766a6040511451a_123/sys/commands/response/request_id={request_id}",0,1,0,18,7B22726573756C745F636F6465223A20307D平台设置属性响应:AT+MQTTPUB="$oc/devices/5eaaa3ed3766a6040511451a_123/sys/properties/set/response/request_id={request_id}",0,1,0,18,7B22726573756C745F636F6465223A20307D-----------平台下发的数据(示例)-----------------//平台下发命令+MQTTPUBLISH: 0,0,0,0,$oc/devices/5eaaa3ed3766a6040511451a_123/sys/commands/request_id=9343402b-7cb0-490c-805d-c2c93ad28c85,68,{"paras":{"parm1":"VV"},"service_id":"s1","command_name":"command1"}//平台修改设备属性+MQTTPUBLISH: 0,0,0,0,$oc/devices/5eaaa3ed3766a6040511451a_123/sys/properties/set/request_id=2ba841f9-dbeb-4bab-9d04-6e8a89183f07,159,{"services":[{"properties":{"Data1":"11111111112222222223333333"},"service_id":"s1"}]}三、注意事项华为云部分:1、MQTT协议的端口有两个,1883是针对MQTT协议的,8883是针对MQTTS协议的。(我用的MQTT端口1883)2、华为物联网平台上的MQTT接口有新老版本之分,老版本是V3版本,新版本是V5版本。(由于开发文档东西有点多,我在看开发文档的时候,没有意识到这个问题,后来才发现的)平台的开发文档中说的是新老版本的接口不同,但我的感觉应该就是两个版本默认定义的topic不同。新版本topic比较多,功能也比老版本多。具体参见官方的开发文档。(这里我之说设备侧的开发,应用侧的开发我没研究)3、平台有关IOT的开发文档我觉的有点乱,大类有两个,一个是“设备接入 IoTDA”的开发文档,另一个是“设备管理 IoTDM”的开发文档。刚开始我都不知道还有两个文档。貌似”设备接入 IoTDA”的开发文档是针对新版本V5的,而另一个是针对老版本的V3的,只是说貌似。(这么说的依据是这个目录“ 文档首页 > 设备接入 IoTDA > API参考> 设备侧MQTT接口参考> Topic定义 ”和这个目录“ 文档首页 > 设备管理 IoTDM > API参考> 设备侧MQTT接口参考> 使用前必读 ”中定义的topic不同 。具体我也不清楚,自己看吧)4、平台上下行数据方式有JSON数据格式和二进制码流之分。(但是我在创建产品的时候数据传输方式只有JSON一个选项) 如果上报的格式是JSON则不用自己开发插件,如果是用二进制码流的格式则需要自己开发插件来解析数据。老版本的topic有个参数能选择上报数据时的方式,但是新版本的topic好像不能选择(我没看到怎么选择),默认的是JSON格式。5、关于JSON数据格式可以自己网上找一下资料。并不难。6、不按照JSON格式上报的数据平台不会显示(当然不包括采用老版本的二进制码流格式),只能在平台的消息跟踪里边看到相关的提示。M5311模块部分:1、模块AT指令的参数中不能含有逗号。而华为云要用的JSON格式中必须要有逗号。所以要用16进制的形式发送。具体内容见手册中的AT+MQTTPUB指令的说明。M5311模块对接平台部分:1、建议先通过电脑的串口调试助手连接并控制M5311模块(用USB转串口模块或者单片机开发板自带的USB转串口模块),对接成功之后再去编程实现功能。2、平台连接在发送完 “AT+MQTTOPEN=1,1,0,0,0,"","" ”之后如果连接成功会返回 “+MQTTOPEN: OK”。(注意,只返回“OK”的话不代表连接成功,必须是“+MQTTOPEN: OK)3、设备断开连接之后,以前订阅的主题全都没了,需要重新订阅主题。4、设备标识码可以不用模块的IMEI号(虽然有些地方说让设置为NB模块的IMEI号),自己随便设置即可。5、设备必须订阅命令下发的主题之后才能在平台上发送命令(没有提前订阅topic就下发命令,会平台提示发送失败)6、开发文档中给出的默认topic中,需要自己配置的参数用大括号括起来了,但是改这个参数的时候大括号要去掉,例如:平台给出的默认topic形式“$oc/devices/{device_id}/sys/commands/response/request_id={request_id} ”,你自己改的时候要改成这样“$oc/devices/123/sys/commands/response/request_id=456 ”(123,456只是示例,具体根据实际情况改)7、设备的影子有个期望值,平台上说的是修改期望值之后,如果正常连接,平台会下发期望值到设备。但是我用老版本的接口订阅了命令下发的默认topic,然后修改影子的期望值NBIOT模块并没有收到下发的数据,后来我改用新版本的接口,订阅了平台设置属性的topic,修改设备影子中的期望值,设备端收到了数据。(所以可能老版本的接口不支持修改设备影子中的期望值后,平台下发期望值的操作。新版本的能支持)8、(1)设备不在线,更改设备影子期望值,等设备上线,并且订阅了平台设置属性topic后,平台并不会下发之前修改的设备影子期望值。 (2)设备没有提前订阅平台设置属性topic时,等更改完设备影子期望值后又订阅了该topic,平台并不会下发之前修改的设备影子期望值。 (3)当设备上报的属性值与影子中的期望值不一致时,平台会下发影子中的期望值。但是当设备上报一次与影子中的期望值相同后,若影子中的期望值一直保持不变,再上报与影子中不同的值,平台不会再下发影子中的期望值。 前两点与平台的开发文档中描述不太一致,不清楚是平台的bug还是我的操作有问题。(如果想等设备上线时把影子中的数据同步到设备可以考虑用“设备侧获取平台的设备影子数据”的方法,平台开发文档有详细介绍)9、平台下发数据到设备之后,设备需要返回应答,至于没有应答的后果,,,一段时间之内没有进行应答,会导致连接断开。但是我的测试有时候设备没有进行应答并不会断开连接,但有时候会断开连接,具体原因不太清楚。所以还是建议进行应答。结束语:1、如果需要STM32控制M5311模块对接华为云平台源码的可以留言或者联系Q1693794917(注明来意)2、如果遇到实在解决不了的问题可以在平台上创建工单,咨询平台工程师。3、华为云平台以及NBIOT模块功能很多也有点复杂,我并没有全面的了解、测试。所以本文的观点可能会有些片面、不当、错误之处,望各位谅解、指正。未完待续。。。。。。。。。。。。
-
请问, 下面证书验证失败的问题有谁碰到过么?使用demo代码:Agentlite_LinuxC_Demo.zip环境: hisi35161970-01-01 02:40:07 SCK INF: sock(2) disc lasterr:91970-01-01 02:40:07 HTTP INF: UHttpFsm(2)[1:CONNECTING] run SCK(2) msg(2:TCP_DISC) to [CONNECTING] ok1970-01-01 02:40:07 SCK INF: sock(2) close1970-01-01 02:40:07 TLS INF: tls method use 3, old 01970-01-01 02:40:07 TLS INF: tls use same ctx.1970-01-01 02:40:07 SCK INF: sock(3) HTTP(2) mode:1 type:4 open 192.***.*.120 :364311970-01-01 02:40:07 SCK INF: sock(3) cretls ret:01970-01-01 02:40:07 SCK INF: sock(3) connecting 49.*.**.24 :8943 ret:0 errno:01970-01-01 02:40:07 HTTP INF: UHttpFsm(2)[1:CONNECTING] run TMR(0) msg(1:WAIT_RECONN) to [CONNECTING] ok1970-01-01 02:40:07 SCK INF: sock(2) delete send:0 recv:0 discard:0 scnt:0 rbuf:0 uerr:01970-01-01 02:40:07 TLS ERR: tlsssl shutdown error[1].1970-01-01 02:40:07 SCK INF: sock(2) deltls ret:01970-01-01 02:40:07 SCK INF: sock(3) 49.*.**.24 :8943 preconnect1970-01-01 02:40:07 HTTP INF: UHttpFsm(2)[1:CONNECTING] run SCK(3) msg(0:TCP_ACK) to [CONNECTING] ok1970-01-01 02:40:07 TLS ERR: tlsssl connect error[1] errno[0] e:33****686-error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed1970-01-01 02:40:07 SCK INF: sock(3) disc lasterr:9参考https://bbs.huaweicloud.com/forum/thread-35453-1-1.html, 重新下载证书,问题依旧没有解决常见问题(1)OpenSSL Error: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failedagentLite 证书校验失败,请检查证书是否配置正确,证书一般是放置在demo中的conf目录下的rootcert.pem 文件,如果该目录下已经存在证书文件,请点击下载更换证书
-
前提条件已完成MQTT协议产品的开发。一、在开发中心导出产品的Profile文件进入开发中心,选择“产品->产品开发”,点击需要转商用的MQTT产品。在该产品开发空间,点击“Profile定义”,然后点击“导出Profile”,导出MQTT产品。本地保存路径自定义。二、在设备管理导入产品的Profile文件进入设备管理服务,在“我的应用”选择需要导入Profile文件的应用,然后点击左下角第一个按钮,进入该应用。选择“产品模型”,鼠标移至右上角的“新增产品模型”,点击“本地导入”。在“手动导入产品”页面,填写产品名称,上传上文导出的Profile文件,然后点击“确定”,完成产品的导入。至此,产品可以在设备管理使用,在产品模型列表,点击“详情”,可以查看产品详情。三、在设备管理注册设备验证产品的能力选择“设备->设备注册”,在“单个注册”页面,点击“创建”。在“单设备注册”页面,填写设备相关信息,产品模型选择上文导入的产品,然后点击“确定”,完成设备注册。使设备上电,并上报一条数据,然后在“设备->所有设备”,点击刚注册的设备,进入“设备详情->设备信息”,查看“最近上报数据”,验证数据是否正确。
-
之前分享了openssl交叉编译方法,现在可以将编译好的openssl动态库使用到paho mqtt中了。P.S.如果系统中已有openssl库,则可以直接使用。是否有安装openssl可以直接在控制台输入openssl命令,如果没有报命令不识别之类的,且出现如下结果就说明已安装了openssl:一、准备工作下载paho.mqtt.c源码,github下载地址:https://github.com/eclipse/paho.mqtt.c解压后上传到linux编译机上将交叉编译工具链也上传解压,并确认交叉编译器所在路径。如果是64位的编译链,还需要确认头文件(sysroot)所在路径 (详细确认方法请参考openssl交叉编译方法的帖子内容)二、修改Makefile主要修改3个地方:交叉编译器路径(准备工作中找到的交叉编译器所在路径)和openssl目录(之前编译好的openssl库所在目录,因为要替换的不只一处,可在文本编辑器中全局搜索openssl再自行替换),如下图所示(点击下图可使用鼠标滚轮放大缩小)如果要增加编译选项,可以加在CFLAGS中(编译选项根据需求添加,可以不添加):上图中增加的编译选项:-Wall -O3 -Wl,-z,relro,-z,now,-z,noexecstack -fno-strict-aliasing -fno-omit-frame-pointer -pipe -Wall -MD -MP -fno-common -freg-struct-return -fno-inline -fno-exceptions -Wfloat-equal -Wshadow -Wformat=2 -Wextra -rdynamic -Wl,-z,relro,-z,noexecstack -fstack-protector-strong -fstrength-reduce -fno-builtin -fsigned-char -ffunction-sections -fdata-sections -Wpointer-arith -Wcast-qual -Waggregate-return -Winline -Wunreachable-code -Wcast-align -Wundef -Wredundant-decls -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs 三、编译出库修改好Makefile后就可以编译了,先make clean一下(把原来的编译结果先清空),再make即可编译完成后可以在build/output目录下看到编译好的库:四、其他说明如果不需要交叉编译工具,而是直接使用gcc,那么修改Makefile时只要修改openssl目录即可(编译选项可加可不加)
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
即将直播
热门标签