async function connectToAwsIot()

in src/MQTTDisplay.js [44:79]


  async function connectToAwsIot() {
    // This connection/function is only for publishing messages;
    // Subscriptions each get their own child object with separate connections.

    // mqtt clients require a unique clientId; we generate one below
    var clientId = 'ayesha-sampleapp-' + (Math.floor((Math.random() * 100000) + 1));

    // get credentials and, from them, extract key, secret key, and session token
    // Amplify's auth functionality makes this easy for us...
    var currentCredentials = await Auth.currentCredentials();
    var essentialCredentials = Auth.essentialCredentials(currentCredentials);

    // Create an MQTT client
    var newMqttClient = AWSIoTData.device({
      region: AWSConfiguration.region,
      host:AWSConfiguration.host,
      clientId: clientId,
      protocol: 'wss',
      maximumReconnectTimeMs: 8000,
      debug: true,
      accessKeyId:  essentialCredentials.accessKeyId,
      secretKey:    essentialCredentials.secretAccessKey,
      sessionToken: essentialCredentials.sessionToken
    });

    console.log('Publisher trying to connect to AWS IoT for clientId:', clientId);
    // On connect, update status
    newMqttClient.on('connect', function() {
      setIsConnected(true);
      console.log('Publisher connected to AWS IoT for clientId:', clientId);
    });

    // update state to track mqtt client
    setMqttClient(newMqttClient);

  }