fix(vd960DBN): MQTT socket 复用 SocketId_TCP,对标官方 WCHNET MQTT 例程
根因分析:iot_connect_broker 自建 socket 与 WCHNET_CreateTcpMqttSocket 创建的 SocketId_TCP 冲突(重复创建),且自建 socket 的 WCHNET_SocketSend 崩溃。官方 MQTT 例程使用统一的 SocketId/SocketId_TCP 模式。 改动: - peripheral_main.c: 恢复 WCHNET_CreateTcpMqttSocket() 调用 - iot_connect_broker: 不再创建新 socket,直接复用 SocketId_TCP - 全链路(SocketSend/HandleSockInt/poll)通过 g_iot_socket=SocketId_TCP 统一
This commit is contained in:
@@ -238,9 +238,15 @@ void Main_Circulation(void)
|
||||
if(g_net_state.flag == 2)
|
||||
{
|
||||
if(g_sub_code_enable.iot_enable){
|
||||
// IoT MQTT 模式由 iot_connect_broker() 自行管理 socket,
|
||||
// 不要在此重复创建,直接推进状态
|
||||
g_net_state.flag = 3;
|
||||
if(iot_net_info.mode == IOT_Addr_IP_Mode){
|
||||
if(get_ipstr_to_array(iot_net_info.remote_addr, RemoteIP) == 0){
|
||||
WCHNET_CreateTcpMqttSocket();
|
||||
}
|
||||
}
|
||||
else{
|
||||
//DNS
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user