【发布时间】:2020-08-23 00:20:17
【问题描述】:
我在 Azure 中创建了一个 IoT 中心。
使用以下代码将设备注册到 IoT 中心 -
public async Task<HttpResponseMessage> RegisterDeviceAsyncData(DeviceData deviceApp)
{
deviceApp.PlatformName = _appSettingsAccessor.GetAppSettingValue(DEFAULT_HUB_KEY);
var result = await _deviceRegistrationHandler.RegisterDeviceAsync(deviceApp);
response = HttpResponseMessageFactory.CreateMessageWithObjectBody(results);
}
它已成功将设备注册到 Iot hub,现在我想使用 C# 向这些设备发送数据。
我有代码可以向下面的设备发送数据,但我不知道如何获取特定设备的连接字符串或发送数据的密钥。
private static async Task SendDeviceToCloudMessagesAsync()
{
DeviceClient deviceClient = DeviceClient.CreateFromConnectionString("deviceConnectionString");
while (true)
{
string messageString = string.Empty;
Message iotHubMsg = new Message();
foreach (BaseMessage msg in currentDevice.Messages)
{
iotHubMsg = msg.ReadAsIotHubMessage();
messageString = Encoding.UTF8.GetString(iotHubMsg.GetBytes());
//Send the current messages and clear them
await deviceClient.SendEventAsync(iotHubMsg);
}
}
}
目前我尝试使用portal.azure.com 获取连接字符串,但在注册设备后如何实时检索连接字符串?我可以使用 SAS 令牌或类似的东西吗?
【问题讨论】:
-
注册设备的结果不是给你一个设备id吗?客户端需要为将来的请求保留它。
-
我正在获取设备 ID,因为我是从请求中插入它,但是如何获取密钥/秘密密钥/主密钥我的意思是连接字符串中也存在密钥?
标签: c# azure azure-iot-hub