如何从AzureIOT只读取来自一个设备的消息

时间:2018-02-20 13:41:49

标签: azure-iot-hub azure-iot-sdk

我有一个Azure IOT解决方案,其中来自2个设备的数据转到同一个IOT中心。从我的计算机上我只需要从其中一个设备上读取消息。我在https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-node-node-getstarted

中实现了ReadDeviceToCloudMessages.js
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中的所有消息。如何仅从一台设备获取消息。

1 个答案:

答案 0 :(得分:0)

您可以将预期的设备消息路由到内置端点:事件。然后,您只能从上面的代码中接收选定的设备消息。

创建route

enter image description here

转“将与任何规则不匹配的设备消息写入'事件(消息/事件)'端点。”关闭并确保路线已启用。

enter image description here