RT-Thread-packages / umqtt

A light weight, powerful, customizable, easy-to-use and embeddable mqtt client for RT-Thread
Apache License 2.0
27 stars 10 forks source link

一连就报iocontrol socket error这个错! #7

Open akinggw opened 4 years ago

akinggw commented 4 years ago

用的这个进行测试,

define MQTT_URI "tcp://mq.tongxinmao.com:18831"

一连就报 iocontrol socket error

akinggw commented 4 years ago

[D/at.dev.esp] AT version:1.5.0.0(Oct 24 2017 12:03:18) [D/at.dev.esp] SDK version:2.1.0(ace2d95) [D/at.dev.esp] compile time:Oct 24 2017 15:48:06 [D/at.dev.esp] Bin version(Wroom 02):1.5.1 [I/at.dev.esp] esp0 device wifi is connected. [I/at.dev.esp] esp0 device network initialize successfully. [E/umqtt.transport] iocontrol socket error! [E/umqtt] umqtt connect, transport connect failed! [E/at.clnt] execute command (AT+CIPCLOSE=0) failed! [E/umqtt] server send fin ack, need to reconnect! [E/umqtt.transport] iocontrol socket error! [E/umqtt] umqtt connect, transport connect failed! [E/at.clnt] execute command (AT+CIPCLOSE=0) failed! [E/umqtt] server send fin ack, need to reconnect! [E/umqtt.transport] iocontrol socket error! [E/umqtt] umqtt connect, transport connect failed! [E/at.clnt] execute command (AT+CIPCLOSE=0) failed! [E/umqtt] server send fin ack, need to reconnect! [E/umqtt.transport] iocontrol socket error! [E/umqtt] umqtt connect, transport connect failed! [E/at.clnt] execute command (AT+CIPCLOSE=0) failed!

akinggw commented 4 years ago
_ret = ioctlsocket(*sock, FIONBIO, 0);
if (_ret < 0) 
{
    LOG_E(" iocontrol socket error!");
    _ret = UMQTT_FAILED;
    goto exit;
}

和这里有关,我这边不知道怎么的,设置不成功,如果注释掉这句,可以连接,但一会儿线程又崩掉了

springcity2016 commented 4 years ago

针对第一个问题解答: 测试的话, 用 #define MQTT_URI "tcp://test.mosquitto.org:1883"。

针对第二个问题解答: 线程蹦掉有详细的 log 么? 我们这边需要 log 去判断问题?

studyinhub commented 3 years ago

针对第一个问题解答: 测试的话, 用 #define MQTT_URI "tcp://test.mosquitto.org:1883"。

针对第二个问题解答: 线程蹦掉有详细的 log 么? 我们这边需要 log 去判断问题?

[40049] I/umqtt: connect success! [40054] I/umqtt.sample: umqtt start success! msh >(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer) assertion failed at function:rt_timer_control, line number:484

majianjia commented 3 years ago

@springcity2016 崩掉的解决方法是把默认timer线程stack size增加到1024以上。 但是原因不明。是不是timer回调上干太多活了?

springcity2016 commented 3 years ago

是的,你把这个栈开大一点,应该就没问题了。 你可以加一下我微信,我给你推荐一下我们公司其他同事,维护这个软件包的人。 我目前已经转到别的部门了,暂时没有太多的精力维护这个软件包。 后期有更多同事维护。实在是抱歉了。

您可以通过手机号码: 13862419245,添加我微信。谢谢啦~

在 2021-04-19 05:06:36,"Jianjia Ma" @.***> 写道:

@springcity2016 崩掉的解决方法是把默认timer线程stack size增加到1024以上。 但是原因不明。是不是timer回调上干太多活了?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

SunJun8 commented 1 year ago

@springcity2016 你们内部还在维护这个软件包吗?是否可以推一下