mqtt 收到平台下发消息,  QOS 等级为 1  没给发 PUBACK 报文 导致平台一直下发消息
`static int mqtt_demo_loop (mqtt_demo_context_t *ctx) 
{
int packet_length = 0; 
int counter = 0; 
counter++; 
packet_length = mqtt_demo_recv_parse (ctx,  1,  1) ; 
if (packet_length   0) 
{
    //wm_printf ("recvd Packet Header:  0x%x. . . \n",  mqtt_demo_packet_buffer[0]) ; 
    if  (MQTTParseMessageType (ctx- mqtt_demo_packet_buffer)  == MQTT_MSG_PUBLISH) 
    {
        uint8_t topic[100],  *msg; 
        uint16_t len; 
        len = mqtt_parse_pub_topic (ctx- mqtt_demo_packet_buffer,  topic) ; 
        topic[len] = '\0';  // for printf
        len = mqtt_parse_publish_msg (ctx- mqtt_demo_packet_buffer,  &msg) ; 
        msg[len] = '\0';  // for printf
        wm_printf ("recvd:  %s     %s\n",  topic,  msg) ; 
        mqtt_publish (&ctx- mqtt_demo_mqtt_broker,   (const char *) MQTT_DEMO_RX_PUB_TOPIC,   (const char *) msg,  len,  0) ; 
        wm_printf ("pushed:  %s     %s\n",  MQTT_DEMO_RX_PUB_TOPIC,  msg) ; 
    }
    tls_os_queue_send (mqtt_demo_task_queue,   (void *) MQTT_DEMO_CMD_LOOP,  0) ; 
}
else if  (packet_length == MQTT_DEMO_READ_TIMEOUT) 
{
    tls_os_queue_send (mqtt_demo_task_queue,   (void *) MQTT_DEMO_CMD_LOOP,  0) ; 
}
else if (packet_length == -1) 
{
    wm_printf ("mqtt error:  (%d) ,  stop mqtt demo! \n",  packet_length) ; 
    tls_os_timer_stop (ctx- mqtt_demo_heartbeat_timer) ; 
    ctx- close_mqtt (ctx) ; 
}
return 0; 
}`
我已经改了 就是 MQTT 发布消息等级不是有 0 和 1 和 2 么 1 的话需要回复 PUBACK 报文但是 MQTT 例程里面的没有回复, 导致平台以为没收到 一直再下发, 我自己增加回复了
@qq3147106 真棒!