Search code examples
node.jsazureiotazure-eventhubcortana-intelligence

Azure ioT and Event Hub?


I am trying to read the events that my device is sending. I am using azure npm lib to read the what i think is right.

Ok so first, under my Azure ioT Hub account for that service there is a tab call Messaging. There is something called "Event Hub-compatible name" and "Event Hub-compativle endpoint". Do i have to create a new Event hub with the name of "Event Hub-compatible name" or what? I am a bit confused :D If not what is the connection string and topic and so on?

Here is how the code is now...

var azure = require('azure');

var serviceBusService = azure.createServiceBusService("Endpoint=XXXXXXXXXX.servicebus.windows.net/");
var isWaiting = false;


function waitForMessages(){
    console.log("Checking Queue...");
    isWaiting = true;
    serviceBusService.receiveQueueMessage("messages","events",function (error, receivedMessage){
        console.log(error);
        console.log(receivedMessage);
        isWaiting = false;
    });
}


// Start messages listener
setInterval(function () {
    if(!isWaiting){
        waitForMessages();
    }
}, 200);

Solution

  • Connect to the IoT Hub to receiving the data:

    var protocol = 'amqps';
    var eventHubHost = '{your event hub-compatible namespace}';
    var sasName = 'iothubowner';
    var sasKey = '{your iot hub key}';
    var eventHubName = '{your event hub-compatible name}';
    var numPartitions = 2;
    

    Protocol

    var protocol = 'amqps';
    

    It is the Event Hub-compatible endpoint: sb://abcdefnamespace.servicebus.windows.net/ but without the sb:// and .service windows.net/

    Like that: abcdefnamespace

    var eventHubHost = '{your event hub-compatible namespace}';
    

    Its so OK

    var sasName = 'iothubowner';
    

    Primary key, like this: 83wSUdsSdl6iFM4huqiLGFPVI27J2AlAkdCCNvQ==

    var sasKey = '{your iot hub key}';
    

    Name like this: iothub-ehub-testsss-12922-ds333s var eventHubName = '{your event hub-compatible name}';

    Its so OK

    var numPartitions = 2;