UNPKG

eventhubs-js

Version:

Easy to use client for Azure event hubs

132 lines (110 loc) 3.29 kB
var Q = require("q"); var easyConfig = require('easy-config'); var eventHubs = require('./client.js'); // Full Event Hub publisher URI var config; var eventHubsUri; var sasToken; var config = easyConfig.loadConfig(); if (!config.EventHubsNamespace) { throw new Error("Config file not found, or you forgot to set the namespace in the config."); } var eventHubsNamespace = config.EventHubsNamespace, eventHubsHubName = config.EventHubsHubName, eventHubsKeyName = config.EventHubsKeyName, eventHubsKey = config.EventHubsKey, sasToken = config.SasToken, deviceId = config.DeviceName; testSendContinuous(); //testSendPerformance(); //example1(); //exampleWithSasToken(); function sendRandomData(silent) { var deferral = Q.defer(); var payload = { Temperature: (Math.random() * 100) + 1, Humidity: Math.random() } eventHubs.sendMessage({ message: payload, deviceId: deviceId, }).then(function () { if (!silent) console.log('Sent ' + JSON.stringify(payload)); deferral.resolve(); }).catch(function (error) { if (!silent) console.log('Error sending message: ' + error); deferral.reject(error); }) .done(); return deferral.promise; } function testSendContinuous() { eventHubs.init({ hubNamespace: eventHubsNamespace, hubName: eventHubsHubName, keyName: eventHubsKeyName, key: eventHubsKey }); } function testSendPerformance() { eventHubs.init({ hubNamespace: eventHubsNamespace, hubName: eventHubsHubName, keyName: eventHubsKeyName, key: eventHubsKey }); //warm-up sendRandomData(true); sendRandomData(true); sendRandomData(true); sendRandomData(true); sendRandomData(true); var i, start = new Date(), end, promise, promises = [], iterations = 1000; for (i = 0; i < iterations; i++) { promise = sendRandomData(true); promises.push(promise); } Q.allSettled(promises).then(function () { end = new Date(); var elapsed = end.getTime() - start.getTime(); console.log('Test Complete. Took ' + elapsed + 'ms to send ' + iterations + 'messages'); console.log(elapsed / iterations + 'ms / message'); console.log(1000 / (elapsed / iterations) + ' messages / second'); }); } function example1() { eventHubs.init({ hubNamespace: eventHubsNamespace, hubName: eventHubsHubName, keyName: eventHubsKeyName, key: eventHubsKey }); var deviceMessage = { Temperature: 45.2, Pressure: 23.7 } eventHubs.sendMessage({ message: deviceMessage, deviceId: 1, }); } function exampleWithSasToken() { eventHubs.init({ hubNamespace: eventHubsNamespace, hubName: eventHubsHubName, sasToken: sasToken }); var deviceMessage = { Temperature: 45.2, Pressure: 23.7 } eventHubs.sendMessage({ message: deviceMessage, deviceId: 1, }); }