Azure ioT и Event Hub?

Я пытаюсь прочитать события, которые отправляет мое устройство. Я использую azure npm lib, чтобы читать то, что я считаю правильным.

Итак, во-первых, в моей учетной записи Azure ioT Hub для этой службы есть вкладка «Обмен сообщениями». Есть что-то под названием «Совместимое с концентратором событий имя» и «Конечная точка, совместимая с концентратором событий». Нужно ли мне создавать новый концентратор событий с именем «Совместимое с концентратором событий имя» или как? Я немного запутался: D Если нет, то какая строка подключения и тема и так далее?

Вот как теперь выглядит код ...

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);

person Krister Johansson    schedule 12.01.2016    source источник


Ответы (4)


Подключитесь к IoT Hub для получения данных:

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;

Протокол

var protocol = 'amqps';

Это конечная точка, совместимая с концентратором событий: sb: //abcdefnamespace.servicebus.windows.net/, но без sb: // и .service windows.net/

Вот так: abcdefnamespace

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

Это так нормально

var sasName = 'iothubowner';

Первичный ключ, например: 83wSUdsSdl6iFM4huqiLGFPVI27J2AlAkdCCNvQ ==

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

Назовите это так: iothub-ehub-testsss-12922-ds333s var eventHubName = '{имя, совместимое с вашим концентратором событий}';

Это так нормально

var numPartitions = 2;
person ofitz    schedule 23.06.2016

Event Hub-compatible name не означает, что вы должны создать концентратор событий с тем же именем.

IOT Hub предоставляет конечную точку, обратно совместимую с Event Hub API. Я думаю, что реальная реализация немного сложнее, но вы можете думать о IOT Hub как об унаследованном от концентраторов событий или, по крайней мере, об их реализации. Используйте это имя, совместимое с концентратором событий, с любыми SDK концентратора событий или примерами кода как часть строки подключения.

Для объяснения концепций Event Hub-compatible name и Event Hub-compatible endpoint вы можете обратиться к разделу How to read from Event Hubs-compatible endpoints официального документа Руководство разработчика Центра Интернета вещей Azure. Вы можете использовать Azure Service Bus SDK for .NET или _ 6_ для чтения событий из Центра Интернета вещей. в C #.

В противном случае существуют два пакета SDK Azure IoT для NodeJS с использованием _7 _ : Azure IoT Service SDK (Справочник по API) & Azure IoT Device SDK (Справочник по API).

connection string, который вы можете найти в одной политике на вкладке Shared Access Policies в All settings, см. Рис. Ниже из документа _ 13_.

введите здесь описание изображения

В соответствии с вашими потребностями в чтении событий из Центра Интернета вещей вы можете следовать этим образцам, чтобы кодировать с помощью пакетов SDK Azure IoT для NodeJS.

  1. Используя Azure IoT Service SDK для вывода списка идентификаторов устройств, зарегистрированных в вашем Центре Интернета вещей, см. Образец https://github.com/Azure/azure-iot-sdks/blob/master/node/service/samples/registry_sample.js.
  2. Использование Azure IoT Device SDK для отслеживания событий из Центра Интернета вещей см. В примере https://github.com/Azure/azure-iot-sdks/blob/master/node/device/samples/remote_monitoring.js.

Надеюсь, это поможет. Если возникнут какие-либо вопросы, пожалуйста, дайте мне знать.

person Peter Pan    schedule 13.01.2016

Вы можете использовать SDK концентраторов событий для Node.js, чтобы просматривать события / сообщения, отправляемые вашим устройством в ваш Центр Интернета вещей:

https://www.npmjs.com/package/azure-event-hubs

Клиентский объект SDK концентраторов событий может принимать строку подключения Центра Интернета вещей, поэтому вам не нужно использовать строку подключения концентраторов событий.

Если вы просто пытаетесь отладить свое устройство и хотите убедиться, что оно действительно отправляет сообщения, вы можете использовать инструмент под названием iothub-explorer, поставляемый с пакетом SDK для Azure IoT Hub:

https://github.com/Azure/azure-iot-sdks/tree/master/tools/iothub-explorer

Также несколько пояснений относительно предыдущего ответа: Service SDK позволяет отправлять сообщения на устройства и читать сообщение «обратной связи», которое отправляет устройство, которое используется, чтобы узнать, приняло ли устройство или отклонило командное сообщение, но не содержит данные. Это не помогает читать события данных, отправленные устройством.

person pierreca - MSFT    schedule 04.04.2016
comment
кажется, ты знаешь, о чем говоришь. Вы можете помочь мне кое-что понять? - Мне нужно, чтобы мое поддерживаемое веб-приложение где-то регистрировало событие (например, новое сообщение создано), а затем мне нужна какая-то лазурная служба для отправки сообщения об этом событии всем клиентам, которые в настоящее время находятся в сети (через веб-браузеры) - что-то вроде веб-сокетов. Я не могу понять концентратор событий, служебную шину ... и всю терминологию, связанную с Azure. Начал использовать лазурный хостинг несколько недель назад. Спасибо. - person virrion; 12.10.2017
comment
Звучит как отдельный вопрос. Я могу помочь с iot вещами, но это немного не в моих компетенциях, извините: - / - person pierreca - MSFT; 12.10.2017

Каждый экземпляр Iot Hub поставляется со встроенной конечной точкой, совместимой с концентраторами событий. Конечная точка, совместимая с концентратором событий, которую вы видите на портале Azure, будет строкой подключения, указывающей на экземпляр концентратора событий, откуда вы можете читать все сообщения, отправленные в ваш экземпляр концентратора Интернета.

Вы можете использовать эту строку подключения для создания экземпляра класса EventHubConsumerClient из библиотеки @azure/event-hubs и чтения ваших сообщений.

Говорят, что в случае аварийного переключения эта поддерживающая встроенная конечная точка изменится. Итак, вам нужно будет получить новую строку подключения и перезапустить процесс. Другой вариант - использовать образец кода в репозиторий azure-iot-samples-node, чтобы получить строку подключения, совместимую с концентратором событий, передав строку подключения концентратора Интернета, а затем используйте библиотеку @azure/event-hubs для чтения ваших сообщений. Подробнее см. В Читать со встроенной конечной точки

person Ramya Rao    schedule 10.06.2020
comment
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - Из отзыва - person Tom Slabbaert; 10.06.2020