Сколько сообщений может входить в модуль IoT Edge на C #? Все примеры показывают "input1", но не более того. В документации не упоминается ничего, кроме input1.
Я пытаюсь использовать несколько входов в одном модуле IoT Edge C #, но не знаю, как это сделать. Программа-пример устанавливает «input1», подключенный к обработчику входных сообщений с именем PipeMessage. При использовании этого модуля с маршрутизацией по умолчанию все работает хорошо. При попытке добавить второй обработчик входящего сообщения и вызвать вход «input2» и добавить маршрутизацию, ничего не проходит. Как нам настроить более одного входа в модуле C # IoT Edge?
Program.cs Task Init () устанавливает обработчик входящего сообщения с помощью метода обратного вызова, называемого PipeMessage. Я дублирую этот код и меняю имена второго входа, но ничего не выходит.
static async Task Init()
{
AmqpTransportSettings amqpSetting = new AmqpTransportSettings(TransportType.Amqp_Tcp_Only);
ITransportSettings[] settings = { amqpSetting };
// Open a first connection to the Edge runtime
ModuleClient ioTHubModuleClient = await ModuleClient.CreateFromEnvironmentAsync(settings);
await ioTHubModuleClient.OpenAsync();
Console.WriteLine("IoT Hub module client initialized.");
// Register callback to be called when a message is received by the module on input1
await ioTHubModuleClient.SetInputMessageHandlerAsync("input1", PipeMessage, ioTHubModuleClient);
// Open a second connection to the Edge runtime
ModuleClient ioTHubModuleClient2 = await ModuleClient.CreateFromEnvironmentAsync(settings);
await ioTHubModuleClient2.OpenAsync();
Console.WriteLine("IoT Hub module client initialized.");
// Register callback to be called when a message is received by the module on input2
await ioTHubModuleClient2.SetInputMessageHandlerAsync("input2", PipeMessage2, ioTHubModuleClient);
}
`
и маршруты следующие:
"routes": {
"CSharpFilter2ToIoTHub": "FROM /messages/modules/CSharpFilter2/outputs/* INTO $upstream",
"sensor1ToCSharpFilter2": "FROM /messages/modules/tempSensor1/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/CSharpFilter2/inputs/input1\")",
"sensor2ToCSharpFilter2": "FROM /messages/modules/tempSensor2/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/CSharpFilter2/inputs/input2\")"
},
Что я делаю неправильно?
В частности, что мы должны делать для обработки более чем одного ввода в модуле IoT Edge?