Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Network
调试MQTT遇到的问题
发布于 2019-11-22 17:18:46 浏览:2723
订阅该版
首先我加载了pahoMQTT的组件,并且按照例程的说明,验证了sample程序,能够连上我自己的MQTT服务器,服务器端也看到了我发的消息 第二步,我根据 [https://github.com/RT-Thread-packages/paho-mqtt/blob/master/docs/user-guide.md](https://github.com/RT-Thread-packages/paho-mqtt/blob/master/docs/user-guide.md) 的引导,写了我自己的MQTT程序 测试程序在AT_SOCKET连接成功后才执行MQTT连接 然后就报错了,跟踪代码,貌似是url判断不正确,但是在sample里也是一样的tcp url,不知道哪里出了问题,请教下 报错信息如下: \ | / - RT - Thread Operating System / | \ 3.1.3 build Nov 19 2019 2006 - 2019 Copyright by rt-thread team [I/sal.skt] Socket Abstraction Layer initialize success. [I/at.clnt] AT client(V1.2.0) on device uart2 initialize success. msh />[E/at.clnt] wait connect timeout (5000 millisecond)! [E/at.sim800c] AT network initialize failed (-2)! [I/at.sim800c] CHINA MOBILE [I/at.sim800c] AT network initialize success! [E/mqtt] resolve uri err [E/mqtt] Net connect error(-1). [D/mqtt] restart! [E/mqtt] resolve uri err [E/mqtt] Net connect error(-1). 跟踪到的出错位置: ![报错MQTT跟踪.jpg](/uploads/201911/22/171831noyetdzegs5evpgc.jpg) 附上我的MQTT通信测试函数: static MQTTClient client; MQTTPacket_connectData condata = MQTTPacket_connectData_initializer; static char cid[20] = {0}; /* 随机ID */ rt_snprintf(cid, sizeof(cid), "rtthread%d", rt_tick_get()); /* 连接参数 */ memcpy(&client.condata, &condata, sizeof(condata)); client.condata.clientID.cstring = cid; client.condata.keepAliveInterval = 60; client.condata.cleansession = 1; client.condata.username.cstring = MQTT_USERNAME; //???? client.condata.password.cstring = MQTT_PASSWORD; //???? /* 遗嘱信息 */ client.condata.willFlag = 1; client.condata.will.qos = 1; client.condata.will.retained = 0; client.condata.will.topicName.cstring = rt_strdup(MQTT_PUBTOPIC); client.condata.will.message.cstring = MQTT_WILLMSG; /* 事件回调函数 */ client.connect_callback = mqtt_connect_callback; //???????? client.online_callback = mqtt_online_callback; //???????? client.offline_callback = mqtt_offline_callback; //???????? /* ÉèÖö©Ôıí */ client.messageHandlers[0].topicFilter = MQTT_SUBTOPIC; client.messageHandlers[0].callback = mqtt_sub_callback; client.messageHandlers[0].qos = QOS1; /* set default subscribe event callback */ client.defaultMessageHandler = mqtt_sub_default_callback; /* 运行MQTT*/ paho_mqtt_start(&client); rt_thread_mdelay(5000); /* 循环上报数据*/ while(1) { char test_mqtt[]="{\"1\":\"2\"}"; rt_thread_mdelay(2000); paho_mqtt_publish(&client, QOS1, MQTT_PUBTOPIC, test_mqtt); } }
查看更多
9
个回答
默认排序
按发布时间排序
aozima
2019-11-22
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
看不出楼主是连接的哪个服务器,可能是服务器有问题了。
sjj430
2019-11-22
这家伙很懒,什么也没写!
>看不出楼主是连接的哪个服务器,可能是服务器有问题了。 --- 我的服务器一直是在跑的,其他应用都正常
sjj430
2019-11-22
这家伙很懒,什么也没写!
>看不出楼主是连接的哪个服务器,可能是服务器有问题了。 --- 并且,之前sample里用的也是同一个服务器,端口,账号和密码
sjj430
2019-11-22
这家伙很懒,什么也没写!
好像是找到问题了,对url没有复制,少了这句话 client.uri = MQTT_URI; 但新的问题又出来了,就当记录贴吧 \ | / - RT - Thread Operating System / | \ 3.1.3 build Nov 19 2019 2006 - 2019 Copyright by rt-thread team [I/sal.skt] Socket Abstraction Layer initialize success. [I/at.clnt] AT client(V1.2.0) on device uart2 initialize success. msh />[E/at.clnt] wait connect timeout (5000 millisecond)! [E/at.sim800c] AT network initialize failed (-2)! [I/at.sim800c] CHINA MOBILE [I/at.sim800c] AT network initialize success! [D/mqtt] ipv4 address port: 1993 [D/mqtt] HOST = 'natural.kylinzw.com' [E/mqtt] MQTT connect error(-1): UNKNOWN_ERROR. [D/mqtt] restart! [D/mqtt] ipv4 address port: 1993 [D/mqtt] HOST = 'natural.kylinzw.com' [E/mqtt] MQTT connect error(-1): UNKNOWN_ERROR. [D/mqtt] restart! [D/mqtt] ipv4 address port: 1993 [D/mqtt] HOST = 'natural.kylinzw.com'
sjj430
2019-11-22
这家伙很懒,什么也没写!
再之后,对比sample。加上了以下 /* 分配缓冲区 */ client.buf_size = client.readbuf_size = 1024; client.buf = rt_calloc(1, client.buf_size); client.readbuf = rt_calloc(1, client.readbuf_size); if (!(client.buf && client.readbuf)) { LOG_E("no memory for MQTT client buffer!"); return -1; } 然后又有进一步的变化了,貌似连上过,但是还有错误 \ | / - RT - Thread Operating System / | \ 3.1.3 build Nov 19 2019 2006 - 2019 Copyright by rt-thread team [I/sal.skt] Socket Abstraction Layer initialize success. [I/at.clnt] AT client(V1.2.0) on device uart2 initialize success. msh />[E/at.clnt] wait connect timeout (5000 millisecond)! [E/at.sim800c] AT network initialize failed (-2)! [I/at.sim800c] CHINA MOBILE [I/at.sim800c] AT network initialize success! [D/mqtt] ipv4 address port: 1993 [D/mqtt] HOST = 'natural.kylinzw.com' [I/mqtt] MQTT server connect success. [I/mqtt] Subscribe #0 $biz/toClient/ OK! [D/mqtt] MQTTSerialize_publish sendPacket rc: -1 [D/mqtt] restart! [D/mqtt] ipv4 address port: 1993 [D/mqtt] HOST = 'natural.kylinzw.com' [E/mqtt] getaddrinfo err: 202 'natural.kylinzw.com' [E/mqtt] resolve uri err [E/mqtt] Net connect error(-1). [E/at.clnt] Read response buffer failed. The Response buffer size is out of buffer size(64)! [E/at.clnt] Read response buffer failed. The Response buffer size is out of buffer size(64)! [E/at.clnt] Read response buffer failed. The Response buffer size is out of buffer size(64)! [E/at.clnt] Read response buffer failed. The Response buffer size is out of buffer size(64)! [D/mqtt] restart! 这里想稍微吐槽下,[https://github.com/RT-Thread-packages/paho-mqtt/blob/master/docs/user-guide.md](https://github.com/RT-Thread-packages/paho-mqtt/blob/master/docs/user-guide.md)文档里写的以后能不能完善一些,完全按照文档做,估计是很多问题的
sjj430
2019-11-22
这家伙很懒,什么也没写!
[attach]12389[/attach] 成功收到了
hello
2019-11-22
这家伙很懒,什么也没写!
>成功收到了 --- 怎么解决的?
sjj430
2019-11-22
这家伙很懒,什么也没写!
上面都一步步贴出了,改的东西,现在是上报可以了,接收的还没调
keyq
2021-03-16
这家伙很懒,什么也没写!
越看 越像现在的我 。。 哎 真的是一步一个坑。 文档还不写。。。
撰写答案
登录
注册新账号
关注者
0
被浏览
2.7k
关于作者
sjj430
这家伙很懒,什么也没写!
提问
12
回答
51
被采纳
0
关注TA
发私信
相关问题
1
lwip1.4.1连接经常会断开无法连接上,可以ping通
2
LPC1768:RTT+LWIP+webserver用IE刷网页出现硬件中断错误(已经解决)
3
求一些LWIP开发的经验,目前ping一直不稳定。
4
stm32f207+dp83848无法ping通
5
RTT下的LWIP传递机制
6
rtt内lwip的socket是否是线程安全?
7
Lwip+enc28j60无法ping通
8
坑爹的rtconfig.h lwip关掉了checksum
9
花了一个晚上,把RT2.0的LWIP、网卡驱动、文件系统整合起来了,发现一点小问题
10
lwip例程中udp发送时如何指定源端口发送到指定目的地端口
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
2
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
3
RT-Thread EtherKit开源以太网硬件正式发布
4
如何在master上的BSP中添加配置yml文件
5
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部