Mi cliente mqtt no puede publicar mensajes en AWS, pero puede recibirlos. El siguiente código funciona para suscribirse al cliente mqtt e imprimir los mensajes recibidos en la consola.
if (Object.keys(cred).length !== 0) { //if temp creds exist, create mqtt client const mqttClient = AWSIoTData.device({ region: awsConfig.region, host: awsConfig.mqttEndpoint, clientId: awsConfig.clientId, protocol: "wss", maximumReconnectTimeMs: 8000, debug: false, accessKeyId: String(cred.AccessKeyId), secretKey: String(cred.SecretAccessKey), sessionToken: String(cred.SessionToken), }); mqttClient.on("connect", () => { console.log("mqttClient connected"); mqttClient.subscribe("mg/autogenstart/fromDevice"); }); mqttClient.on("message", (topic, payload) => { console.log(JSON.parse(payload.toString())); });Sin embargo, el siguiente código no funciona para publicar en el cliente al conectarse.
if (Object.keys(cred).length !== 0) { //if temp creds exist, create mqtt client const mqttClient = AWSIoTData.device({ region: awsConfig.region, host: awsConfig.mqttEndpoint, clientId: awsConfig.clientId, protocol: "wss", maximumReconnectTimeMs: 8000, debug: false, accessKeyId: String(cred.AccessKeyId), secretKey: String(cred.SecretAccessKey), sessionToken: String(cred.SessionToken), }); mqttClient.on("connect", () => { console.log("mqttClient connected"); mqttClient.publish( "mg/autogenstart/toDevice", JSON.stringify({ test_data: 1 }) ); });¿Alguna idea de por qué? Intenté usar el mismo tema y crear una regla vacía en IoT Core para mg/autogenstart/toDevice.