在 Azure IoT 中心 - 我在哪里可以看到从设备发送的 MQTT 消息?
In Azure IoT hub - where do i see MQTT messages that has been sent from a device?
我正在尝试通过 MQTT 协议将消息发送到 Azure IOT 中心。
我在 NodeJS 中使用此代码:
var clientFromConnectionString = require('azure-iot-device-
mqtt').clientFromConnectionString;
var Message = require('azure-iot-device').Message;
var connectionString = 'HostName=myhostname.azure-
devices.net;DeviceId=Arsenal;SharedAccessKey=mysharedaccesskey';
var client = clientFromConnectionString(connectionString);
var connectCallback = function (err) {
if (err) {
console.error('Could not connect: ' + err);
} else {
console.log('Client connected');
var message = new Message('some data from my device');
client.sendEvent(message, function (err) {
console.log("Message sent!");
if (err) console.log(err.toString());
});
client.on('message', function (msg) {
console.log(msg);
client.complete(msg, function () {
console.log('completed');
});
});
}
};
client.open(connectCallback);
这会打印 "Client connected!" 和 "Message sent!"
也许这是一个非常愚蠢的问题,但我可以在 IoT 中心的哪个位置看到已发送的消息?
三点建议:
Azure CLI
在 PowerShell 提示符下键入
- az 登录
az login 命令将打开一个新的 Web 浏览器 window 并要求您登录到您的 Azure 订阅帐户。
接下来我们需要生成一个SAS令牌。我们可以通过 运行 在 Azure CLI window:
中执行此命令
- az iot hub generate-sas-token --duration -n
现在我们有了 SAS 令牌,我们可以通过 运行 以下命令开始监视集线器消息:
- az iot hub monitor-events --hub-name
更多详情请阅读:https://github.com/AzureIoTGBB/How-To-Monitor-Azure-IoT-Hub-with-Azure-CLI-2.0
Azure 函数
- 通过单击 Azure 门户“新建”边栏选项卡中的下方来创建函数应用程序。这是容纳您的功能的“容器”。
- 创建函数后,导航到“从模板页面创建新函数”:
Select IoT 中心(事件中心)和 Javascript 或 C# 作为语言
方便的是,Azure Functions 会在 selecting 这个模板后为你创建与 IoT Hub 的连接,
- 接下来您只需单击 "new" 按钮和 select 正确的 IoT 中心实例:
- 点击"Create",刚刚创建的Function会被IoT Hub事件触发
- 该函数是使用记录消息的样板代码控制台创建的
IoT 中心设备的设备资源管理器
在 repo 的自述文件中描述了如何下载、构建和使用 Device Explorer 工具:
- 您可以下载预构建版本的 Device Explorer 或自行构建。
- Configure the IoT Hub Connection
- 单击“管理”选项卡
还有另一个有用的线程,因为它描述了如何使用它:
我正在尝试通过 MQTT 协议将消息发送到 Azure IOT 中心。 我在 NodeJS 中使用此代码:
var clientFromConnectionString = require('azure-iot-device-
mqtt').clientFromConnectionString;
var Message = require('azure-iot-device').Message;
var connectionString = 'HostName=myhostname.azure-
devices.net;DeviceId=Arsenal;SharedAccessKey=mysharedaccesskey';
var client = clientFromConnectionString(connectionString);
var connectCallback = function (err) {
if (err) {
console.error('Could not connect: ' + err);
} else {
console.log('Client connected');
var message = new Message('some data from my device');
client.sendEvent(message, function (err) {
console.log("Message sent!");
if (err) console.log(err.toString());
});
client.on('message', function (msg) {
console.log(msg);
client.complete(msg, function () {
console.log('completed');
});
});
}
};
client.open(connectCallback);
这会打印 "Client connected!" 和 "Message sent!" 也许这是一个非常愚蠢的问题,但我可以在 IoT 中心的哪个位置看到已发送的消息?
三点建议:
Azure CLI
在 PowerShell 提示符下键入
- az 登录
az login 命令将打开一个新的 Web 浏览器 window 并要求您登录到您的 Azure 订阅帐户。
接下来我们需要生成一个SAS令牌。我们可以通过 运行 在 Azure CLI window:
中执行此命令- az iot hub generate-sas-token --duration -n
现在我们有了 SAS 令牌,我们可以通过 运行 以下命令开始监视集线器消息:
- az iot hub monitor-events --hub-name
更多详情请阅读:https://github.com/AzureIoTGBB/How-To-Monitor-Azure-IoT-Hub-with-Azure-CLI-2.0
Azure 函数
- 通过单击 Azure 门户“新建”边栏选项卡中的下方来创建函数应用程序。这是容纳您的功能的“容器”。
- 创建函数后,导航到“从模板页面创建新函数”: Select IoT 中心(事件中心)和 Javascript 或 C# 作为语言 方便的是,Azure Functions 会在 selecting 这个模板后为你创建与 IoT Hub 的连接,
- 接下来您只需单击 "new" 按钮和 select 正确的 IoT 中心实例:
- 点击"Create",刚刚创建的Function会被IoT Hub事件触发
- 该函数是使用记录消息的样板代码控制台创建的
IoT 中心设备的设备资源管理器
在 repo 的自述文件中描述了如何下载、构建和使用 Device Explorer 工具:
- 您可以下载预构建版本的 Device Explorer 或自行构建。
- Configure the IoT Hub Connection
- 单击“管理”选项卡
还有另一个有用的线程,因为它描述了如何使用它: