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);
}