Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'azure-iothub' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
'use strict';
const logger = require('../lib').logger;
const config = require('../config');
const EventHubClient = require('@azure/event-hubs').EventHubClient;
const EventPosition = require('@azure/event-hubs').EventPosition;
const ServiceClient = require('azure-iothub').Client;
var serviceConnection = null;
var eventHubConnection = null;
// Called whenever an error occurs in either the message callback or the eventhub connection setup
function errorCb(err) {
logger.crit(err.message);
};
// Called whenever we receive a telemetry message from the client
function messageReceivedCb(message) {
logger.debug('Service successfully received telemetry from client.');
logger.trace(JSON.stringify(message));
var targetDevice = message.body.toString();
if(!targetDevice) {
logger.crit('Client telemetry message did not contain the device, unable to respond.');
describe('Over ' + transportCtor.name, () => {
// tslint:disable:no-invalid-this
this.timeout(60000);
const testDevice = testUtils.createTestDevice();
const scs = ServiceConnectionString.parse(process.env.IOTHUB_CONNECTION_STRING);
const testDeviceCS = DeviceConnectionString.createWithSharedAccessKey(scs.HostName, testDevice.deviceId, testDevice.authentication.symmetricKey.primaryKey);
beforeEach((beforeEachCallback) => {
testUtils.addTestDeviceToRegistry(testDevice, beforeEachCallback);
});
afterEach((afterEachCallback) => {
testUtils.removeTestDeviceFromRegistry(testDevice, afterEachCallback);
});
[null, '', 'foo', { k1: 'v1' }, {}].forEach((testPayload) => {
it('device can receive a method call with a payload of ' + JSON.stringify(testPayload) + ' and send a response', (testCallback) => {
const methodName = 'testMethod';
const requestPayload = testPayload;
const responsePayload = { responseKey: uuid.v4() };
const deviceClient = DeviceClient.fromConnectionString(testDeviceCS, transportCtor);
describe('Over ' + transportCtor.name, () => {
// tslint:disable:no-invalid-this
this.timeout(60000);
const testDevice = testUtils.createTestDevice();
const scs = ServiceConnectionString.parse(process.env.IOTHUB_CONNECTION_STRING);
const testDeviceCS = DeviceConnectionString.createWithSharedAccessKey(scs.HostName, testDevice.deviceId, testDevice.authentication.symmetricKey.primaryKey);
beforeEach((beforeEachCallback) => {
testUtils.addTestDeviceToRegistry(testDevice, beforeEachCallback);
});
afterEach((afterEachCallback) => {
testUtils.removeTestDeviceFromRegistry(testDevice, afterEachCallback);
});
it('device can get its device twin and modify reported properties', (testCallback) => {
const deviceClient = DeviceClient.fromConnectionString(testDeviceCS, transportCtor);
const twinPatch = { twinKey: 'twinValue' };
deviceClient.open((err) => {
if (err) throw err;
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
'use strict';
var amqp10 = require('amqp10');
var Promise = require('bluebird');
var anHourFromNow = require('azure-iot-common').anHourFromNow;
var ConnectionString = require('azure-iot-common').ConnectionString;
var EventHubReceiver = require('./eventhubreceiver.js');
var SharedAccessSignature = require('azure-iothub').SharedAccessSignature;
var managementEndpoint = '$management';
function createConfig(connectionString, entityPath) {
var cn = ConnectionString.parse(connectionString);
var host = cn.HostName || (cn.Endpoint || '').slice('sb://'.length);
return {
host: host,
namespace: host.split('.')[0],
keyName: cn.SharedAccessKeyName,
key: cn.SharedAccessKey,
eventHubName: entityPath
};
}
/**
describe('C2D', () => {
// tslint:disable:no-invalid-this
this.timeout(60000);
const testDevice2 = testUtils.createTestDevice();
const hostName = ServiceConnectionString.parse(process.env.IOTHUB_CONNECTION_STRING).HostName;
const testDeviceCS2 = DeviceConnectionString.createWithSharedAccessKey(hostName, testDevice2.deviceId, testDevice2.authentication.symmetricKey.primaryKey);
before((beforeCallback) => {
testUtils.addTestDeviceToRegistry(testDevice2, beforeCallback);
});
after((afterCallback) => {
testUtils.removeTestDeviceFromRegistry(testDevice2, afterCallback);
});
[DeviceAmqp, DeviceAmqpWs, DeviceMqtt, DeviceMqttWs, DeviceHttp].forEach((transportCtor: any) => {
describe('Over ' + transportCtor.name, () => {
let deviceClient: DeviceClient;
beforeEach((beforeEachCallback) => {
deviceClient = DeviceClient.fromConnectionString(testDeviceCS2, transportCtor);
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
'use strict'
const logger = require('../lib').logger;
const iothub = require('azure-iothub');
const errors = require('azure-iot-common').errors;
const Registry = iothub.Registry;
const ConnectionString = require('azure-iothub').ConnectionString;
function getDevice(iotHubConnectionString, deviceId, done) {
var registry = Registry.fromConnectionString(iotHubConnectionString);
registry.get(deviceId, done);
}
function getDeviceConnectionString(iotHubConnectionString, deviceInfo) {
var deviceConnectionString = 'HostName=' + ConnectionString.parse(iotHubConnectionString).HostName + ';DeviceId=' + deviceInfo.deviceId + ';SharedAccessKey=' + deviceInfo.authentication.symmetricKey.primaryKey;
logger.trace('Connectionstring: ' + deviceConnectionString);
return deviceConnectionString;
}
// Create a new device
function createDevice(iotHubConnectionString, deviceId, done) {
var registry = Registry.fromConnectionString(iotHubConnectionString);
var device = {
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
'use strict';
var Registry = require('azure-iothub').Registry;
var Client = require('azure-iothub').Client;
var async = require('async');
// receive the IoT Hub connection string as a command line parameter
if(process.argv.length < 4) {
console.error('Usage: node dmpatterns_reboot_service.js <> <>');
process.exit(1);
}
var connectionString = process.argv[2];
var registry = Registry.fromConnectionString(connectionString);
var client = Client.fromConnectionString(connectionString);
var deviceToReboot = process.argv[3];
// Initiate the reboot process on the device using a device method
async.waterfall([
invokeReboot,
displayRebootStatus
],
function(err) {
if (err){
console.error(err);
} else {
console.log('Reboot complete');
}
});
// Initiate the reboot through a method
'use strict';
var Registry = require('azure-iothub').Registry;
var Client = require('azure-iothub').Client;
var async = require('async');
// receive the target device ID as a command line parameter
if (process.argv.length < 3) {
console.error('Usage: node dmpatterns_fwupdate_service.js <>');
process.exit(1);
}
var connectionString = process.env.IOTHUB_CONNECTION_STRING;
var deviceToUpdate = process.argv[2];
var registry = Registry.fromConnectionString(connectionString);
var client = Client.fromConnectionString(connectionString);
// Service entry point: Initiate the firmware update process on the device using a device method
async.waterfall([
invokeFirmwareUpdate,
displayFirmwareUpdateStatus
],
function(err) {
if (err) {
console.error(err);
} else {
console.log('Fimware update complete');
}
});
// Initiate the firmware update through a method
function invokeFirmwareUpdate(callback) {
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
'use strict';
var Registry = require('azure-iothub').Registry;
var connectionString = process.env.IOTHUB_CONNECTION_STRING;
var registry = Registry.fromConnectionString(connectionString);
var query = registry.createQuery('SELECT * FROM devices', 100);
var onResults = function(err, results) {
if (err) {
console.error('Failed to fetch the results: ' + err.message);
} else {
// Do something with the results
results.forEach(function(twin) {
console.log(twin.deviceId);
});
if (query.hasMoreResults) {
query.nextAsTwin(onResults);
}
}
};
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
'use strict';
var Client = require('azure-iothub').Client;
var connectionString = process.env.IOTHUB_CONNECTION_STRING;
var targetDevice = '';
var methodParams = {
methodName: '',
payload: '[Method Payload]',
responseTimeoutInSeconds: 15 // set response timeout as 15 seconds
};
var client = Client.fromConnectionString(connectionString);
client.invokeDeviceMethod(targetDevice, methodParams, function (err, result) {
if (err) {
console.error('Failed to invoke method \'' + methodParams.methodName + '\': ' + err.message);
} else {
console.log(methodParams.methodName + ' on ' + targetDevice + ':');
console.log(JSON.stringify(result, null, 2));
}
});