Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
paho-mqtt
paho mqtt发布消息就mqtt restart
发布于 2023-10-13 15:02:58 浏览:606
订阅该版
网关通过以太网和服务器建立mqtt连接后,网关可以正常接收服务器端发布的消息,因此可以认为链路上没问题。 可是,只要网关发布消息,就会导致mqtt restart。提示是net_read 0:1, break! 进一步跟踪发现是这里导致:`static int MQTTPacket_readPacket(MQTTClient *c)`里的 ```c /* 1. read the header byte. This has the packet type in it */ if (net_read(c, c->readbuf, 1, 0) != 1) goto exit; ``` 在进一步,0为net_read的timeout参数,为0必然返回-1,就是必导致重启。 ```c if (timeout > 0) { fd_set readset; struct timeval interval; LOG_D("net_read %d:%d, timeout:%d", bytes, len, timeout); timeout = 0; interval.tv_sec = 1; interval.tv_usec = 0; FD_ZERO(&readset); FD_SET(c->sock, &readset); select(c->sock + 1, &readset, RT_NULL, RT_NULL, &interval); } else { LOG_D("net_read %d:%d, break!", bytes, len); break; } ``` 这个是bug吗,已经在这研究几天了,没有解决办法。麻烦协助看一下!
查看更多
3
个回答
默认排序
按发布时间排序
onion
2023-11-02
这家伙很懒,什么也没写!
是mosquitto关闭了连接导致读取失败,原因是message id不能为0, ```c int paho_mqtt_publish(MQTTClient *client, enum QoS qos, const char *topic, const char *msg_str) { MQTTMessage message = {0}; if (qos != QOS1) { BK_LOGE(TAG,"Not support Qos(%d) config, only support Qos(d).\n", qos, QOS1); return PAHO_FAILURE; } message.qos = qos; message.retained = 0; message.payload = (void *)msg_str; message.payloadlen = strlen(message.payload); message.id=1; //不为零,这里应该自增,先这样吧 if (client->isblocking && client->pub_sem) { if(rtos_get_semaphore(&client->pub_sem, 5 * bk_get_ticks_per_second()) < 0) { return PAHO_FAILURE; } } return MQTTPublish(client, topic, &message); } ```
重头来过
2023-10-23
这家伙很懒,什么也没写!
我也遇到这个问题,有解决方法吗
hywing
2023-11-18
嵌入式系统开发工程师,从事物联网、工业自动化、汽车电子开发工作
mqtt标准了解一下:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.pdf ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20231118/0f03055f7776728f383c1c7e2eb10b95.png.webp)
撰写答案
登录
注册新账号
关注者
1
被浏览
606
关于作者
allisa
这家伙很懒,什么也没写!
提问
1
回答
0
被采纳
0
关注TA
发私信
相关问题
1
esp8266用paho-mqtt出现溢出
2
开了其他线程paho_mqtt就出错,不开其他的就正常
3
paho-mqtt心跳间隔太快
4
mqtt hard fault on thread: mqtt0
5
paho-mqtt 出现错误
6
paho-mqtt 软件包支持Qos 2吗?有没有好的mqtt软件包推荐?
7
pahomqtt 发送数据频率过快导致多个组件出现问题
8
paho-mqtt遇到mqtt0的错误,出错在MQTTstrlen函数
9
添加Paho MQTT的SAMPLE文件报错
10
移植freemodbus主机和pahomqtt,如何组织线程
推荐文章
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
freemodbus主机在freertos的适配,参考rtthread例程
2
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
3
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
4
RT-Thread EtherKit开源以太网硬件正式发布
5
还在担心bsp不好维护吗?快使用yml管理主线bsp
热门标签
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
次被采纳
张世争
12
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
用户名由3_15位
13
个答案
2
次被采纳
rv666
9
个答案
2
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
7
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部