@oceanstream/cli
Version:
CLI for managing OceanStream IoT Edge applications on Azure infrastructure
59 lines (51 loc) • 1.46 kB
JavaScript
;
var Transport = require('azure-iot-device-mqtt').Mqtt;
var Client = require('azure-iot-device').ModuleClient;
var Message = require('azure-iot-device').Message;
Client.fromEnvironment(Transport, function (err, client) {
if (err) {
throw err;
} else {
client.on('error', function (err) {
throw err;
});
// connect to the Edge instance
client.open(function (err) {
if (err) {
throw err;
} else {
console.log('IoT Hub module client initialized');
// Act on input messages to the module.
client.on('inputMessage', function (inputName, msg) {
pipeMessage(client, inputName, msg);
});
}
});
}
});
// This function just pipes the messages without any change.
function pipeMessage(client, inputName, msg) {
client.complete(msg, printResultFor('Receiving message'));
if (inputName === 'input1') {
var message = msg.getBytes().toString('utf8');
if (message) {
var outputMsg = new Message(message);
client.sendOutputEvent(
'output1',
outputMsg,
printResultFor('Sending received message')
);
}
}
}
// Helper function to print results in the console
function printResultFor(op) {
return function printResult(err, res) {
if (err) {
console.log(op + ' error: ' + err.toString());
}
if (res) {
console.log(op + ' status: ' + res.constructor.name);
}
};
}