Как читать из AzureIOT сообщения только с одного устройства

У меня есть решение Azure IOT, в котором данные с двух устройств поступают в один и тот же центр IOT. Со своего компьютера мне нужно читать сообщения только с одного из устройств. Я реализовал ReadDeviceToCloudMessages.js в https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-node-node-getstarted

var client = EventHubClient.fromConnectionString(connectionString);
client.open()
.then(client.getPartitionIds.bind(client))
.then(function (partitionIds) {
    return partitionIds.map(function (partitionId) {
        return client.createReceiver('todevice', partitionId, { 'startAfterTime' : Date.now()}).then(function(receiver) {
            console.log('Created partition receiver: ' + partitionId)
            receiver.on('errorReceived', printError);
            receiver.on('message', printMessage);
        });
    });
})
.catch(printError);

Но я получаю все сообщения в IOThub. Как мне получать сообщения только с одного устройства.


person Aparna    schedule 20.02.2018    source источник


Ответы (1)


Вы можете направить ожидаемое сообщение устройства во встроенную конечную точку: события. Тогда вы сможете получить только выбранное сообщение устройства из указанного выше кода.

Создайте маршрут :

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

Установите переключатель «Сообщения устройства, не соответствующие каким-либо правилам, будут записываться в конечную точку« События (сообщения / события) »». и убедитесь, что маршрут включен.

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

person Rita Han    schedule 21.02.2018
comment
Спасибо за ответ ... Значит, данные с device2 не попадут в iothub, потому что для них нет маршрута? также есть способ указать / фильтровать в client.createReceiver, чтобы получать данные только от device1 или device2 или если в данных присутствует только некоторая строка? - person Aparna; 21.02.2018
comment
Да, не маршрутизировать сообщение device2 в конечную точку Events (сообщения / события). Есть параметр ReceiverOptions, который вы можете проверить. Или, если сообщения двух устройств маршрутизируются в два разных раздела, вы можете указать параметр partitionId. - person Rita Han; 22.02.2018