GOOGLE ADS

viernes, 29 de abril de 2022

MQTT no puede conectarse al backend AWS IoT core

ACTUALIZADO: Estoy tratando de conectarme a un backend (AWS IoT Core) ya que estoy usando un wp77 pequeño con una imagen de busybox en ejecución. Cuando uso el puerto 8883, la conexión se agota, así que cambié al puerto 443 y puedo conectarme al backend, aún así, el socket se cierra después de tres intentos. Esta es la lectura del registro de mi aplicación:

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttPrincipal[2717] | DSC conectado... iniciando conexión MQTT

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttPrincipal[2717] |

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttPrincipal[2717] |

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttMain[2717]/mqttCliSvrComponent T=principal | mqttCliSvr.c DcsStateHandler() 317 | ¡rmnet_data0 conectado! Iniciando sesión MQTT

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttClient[1120]/mqttClientApiComponent T=principal | mqttClientApi.c mqttClient_StartSession() 452 | Sesión de inicio llamada

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttClient[1120]/mqttClientApiComponent T=principal | mqttClientApi.c mqttClient_StartSession() 455 | mqttClientPts NO NULO

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | mqtt_StartSession... conectando...

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Sembrando el generador de números aleatorios... ok

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Cargando el certificado raíz de CA... cargar certificados desde certificados ok (0 omitido)

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Cargando el certificado del cliente... /home/root/aws-iot/xxxxxx-certificate.pem.crt ok

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Cargando la clave privada del cliente... /home/root/aws-iot/xxxxxx-private.pem.key ok

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Conectándose a tcp/xxxxxx-ats.iot.ap-southeast-1.amazonaws.com/443...

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | de acuerdo

14 de agosto 03:29:13 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Configurando la estructura TLS... ok

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Realizando el protocolo de enlace TLS... ok

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | [El protocolo es TLSv1.2]

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | [El conjunto de cifrado es TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256]

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] |. Verificando certificado par X.509... ok

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | ID de cliente: FX30S

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | nombre de usuario:

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | Intentando (1/3) conectarse a tcp://xxxxxx-ats.iot.ap-southeast-1.amazonaws.com:443...

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | Consulta las opciones de conexión.

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | MQTT serializa la conexión.

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | Paquete de envío MQTT.

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | bytes enviados: 31

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | bytes totales enviados: 31 de 31

14 de agosto 03:29:15 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | MQTT esperando a CONNACK

14 de agosto 03:29:20 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | MQTT ahora está saliendo con -1

14 de agosto 03:29:20 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | Ha fallado

14 de agosto 03:29:20 fx30s user.info Legato: INFORMACIÓN | mqttCliente[1120] | tlsSocket_cerrar 1

Y este es el código, algo que tomé de github y que acabo de probar en mi dispositivo...

int MQTTConnect(Client* c, MQTTPacket_connectData* options)
{
Timer connect_timer;
int rc = FAILURE;
MQTTPacket_connectData default_options = MQTTPacket_connectData_initializer;
int len = 0;

InitTimer(&connect_timer);
countdown_ms(&connect_timer, c->command_timeout_ms);
if (c->isconnected) // don't send connect packet again if we are already connected
goto exit;
fprintf(stdout, "Check connection options.");
fflush(stdout);
if (options == 0)
{
fprintf(stdout, "MQTTConnect Set default options...");
fflush(stdout);
options = &default_options; // set default options if none were supplied
}

c->keepAliveInterval = options->keepAliveInterval;
countdown(&c->ping_timer, c->keepAliveInterval);
fprintf(stdout, "MQTT serialize connection.");
fflush(stdout);
if ((len = MQTTSerialize_connect(c->buf, c->buf_size, options)) <= )
goto exit;
#if 0
{
int i;
for (i=0; i<len; i++)
{
fprintf(stdout, "%.2x", c->buf[i]);
}
fprintf(stdout, "\n");
fflush(stdout);
fprintf(stdout, "\n%.*s\n", len, c->buf);
fflush(stdout);
}

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...