in src/MQTTDisplay.js [44:78]
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 = 'mqtt-explorer-' + (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
});
// On connect, update status
newMqttClient.on('connect', function() {
setIsConnected(true);
console.log('Publisher connected to AWS IoT.');
});
// update state to track mqtt client
setMqttClient(newMqttClient);
}