Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Network
调试MQTT遇到的问题
发布于 2019-11-22 17:18:46 浏览:2525
订阅该版
首先我加载了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.5k
关于作者
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
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
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
[Vision Board创客营]RTC模块实践
2
AB32VG1 不同版本GCC CoreMark 测试
3
【RA8D1-Vision Board】SCI的SPI模式对接FAL
4
libc是什么?可以吃吗
5
[RA8D1-Vision Board] sd卡实践
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
Hardfault
CAN总线
FinSH
USB
文件系统
DMA
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
I2C_IIC
UART
flash
cubemx
packages_软件包
freemodbus
潘多拉开发板_Pandora
PWM
定时器
ADC
BSP
中断
编译报错
socket
keil_MDK
GD32
MicroPython
msh
Debug
ulog
SFUD
flashDB
SDIO总线
rt_mq_消息队列_msg_queue
本月问答贡献
用户名由3_15位
23
个答案
3
次被采纳
踩姑娘的小蘑菇
16
个答案
3
次被采纳
xiaorui
7
个答案
3
次被采纳
sakumisu
5
个答案
3
次被采纳
三世执戟
32
个答案
1
次被采纳
本月文章贡献
比特饼干
4
篇文章
11
次点赞
Z_Y
2
篇文章
5
次点赞
xusiwei1236
2
篇文章
3
次点赞
yinxiangxv
2
篇文章
3
次点赞
rvcore
2
篇文章
3
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部