【发布时间】:2020-10-05 09:35:06
【问题描述】:
我知道 Azure IoT Edge 不支持 C2D,可以选择使用 Direct Method。
我可以使用模块客户端代码并向模块发送消息吗?
我有一个 ModuleA,它有 output1,而 ModuleB 有一个 Handler input1。 我有如下路线
"ModuleAToModuleB": "FROM /messages/modules/ModuleA/outputs/output1 INTO BrokeredEndpoint(\"/modules/ModuleB/inputs/input1\")",
我使用控制台应用程序中的以下代码,并根据特定模块的连接字符串(ModuleA 连接字符串)向特定模块发送消息
string dataString = JsonConvert.SerializeObject(jData);
byte[] dataBytes = Encoding.UTF8.GetBytes(dataString);
var pipeMessage = new Message(dataBytes);
var moduleClient = ModuleClient.CreateFromConnectionString("HostName=xxx.azure-devices.net;DeviceId=xxx-01;ModuleId=ModuleA;SharedAccessKey=XXXXXXX", TransportType.Mqtt);
await moduleClient.SendEventAsync("output1", pipeMessage);
这段代码会起作用吗,它会将消息从 ModuleA 发送到 ModuleB 吗?
【问题讨论】:
-
您是在尝试从云端向特定模块发送消息,还是在设备本身的模块之间进行边缘路由?
-
将消息从云端发送到设备,我从笔记本电脑/PC 上的控制台应用程序调用上述代码
-
感谢您的解释!我已经为这种情况创建了一个答案!
标签: azure azure-iot-hub azure-iot-edge