в Azure iot Hub у нас есть несколько типов строки подключения
, чтобы зарегистрировать устройство, которое я могу использовать SharedAccessKeyName=iothubowner
, но для отправки сообщений на устройство мне нужно использовать SharedAccessKeyName=device
строку соединения, так как ясобираюсь сгенерировать ID устройства во время выполнения.
Так как я могу зарегистрировать устройство, используя SharedAccessKeyName=device
, чтобы я мог использовать ту же строку подключения для отправки сообщений на устройство iot hub.
код для регистрации устройства -
class Program
{
static RegistryManager registryManager;
static string connectionString = "HostName=mydemo.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=key!";
private static async Task AddDeviceAsync()
{
string deviceId = "dummydevice";
Device device;
try
{
device = await registryManager.AddDeviceAsync(new Device(deviceId));
}
catch (DeviceAlreadyExistsException)
{
device = await registryManager.GetDeviceAsync(deviceId);
}
Console.WriteLine("Generated device key: {0}", device.Authentication.SymmetricKey.PrimaryKey);
}
static void Main(string[] args)
{
registryManager = RegistryManager.CreateFromConnectionString(connectionString);
AddDeviceAsync().Wait();
Console.ReadLine();
}