Azure 物联网中心。云到设备消息(MQTT,自定义主题)
Azure IoT HUB. cloud-to-device messages (MQTT, custom topics)
Azure 物联网中心。云到设备消息(MQTT,自定义主题)
我有一个 Azure 物联网中心。在这里我创建了一个自定义设备。
此设备已成功连接到 Azure IoT 中心。
我也可以从这个设备(设备到云)接收数据。
但是我也想给这个设备发信息。
此设备使用“MQTT 协议”。我无法更改此设备中的订阅主题和发布主题,因此我必须能够在 Azure(函数应用程序)中设置此“自定义主题”。
为此,我创建了一个功能应用程序(IoT Hub(事件中心)),但我不知道如何在此处实现“发布and/or 订阅主题”。所有例子都是关于“messages/events”。
run.csx
public static async void Run(EventData myIoTHubMessage, TraceWriter log)
{
log.Info($"{myIoTHubMessage.SystemProperties["iothub-connection-device-id"]}");
var deviceId = myIoTHubMessage.SystemProperties["iothub-connection-device-id"].ToString();
var msg = JsonConvert.SerializeObject("{\"Values\": {\"Slave 8.Channel 1.Output\": false,");
var c2dmsg = new Microsoft.Azure.Devices.Message(Encoding.ASCII.GetBytes(msg));
await client.SendAsync(deviceId, c2dmsg);
}
设备配置
Azure IOT 中心不是通用的 MQTT 代理。面向设备的方面有预定义的主题,请参阅更多详细信息 here。
通过基于 AMQP 协议的面向服务端点向设备发送 C2D 消息。您应该使用来自 Microsoft Azure IoT 服务客户端 SDK (Microsoft.Azure.Devices) 的 ServiceClient 代理。以下代码片段显示了这部分内容:
// create proxy
string connectionString = ConfigurationManager.AppSettings["myIoTHub"];
var client = ServiceClient.CreateFromConnectionString(connectionString);
// send AMQP message
await client.SendAsync(deviceId, c2dmsg);
在面向设备的一侧,设备应订阅以下主题过滤器:
devices/{device_id}/messages/devicebound/#
Azure 物联网中心。云到设备消息(MQTT,自定义主题)
我有一个 Azure 物联网中心。在这里我创建了一个自定义设备。 此设备已成功连接到 Azure IoT 中心。 我也可以从这个设备(设备到云)接收数据。
但是我也想给这个设备发信息。
此设备使用“MQTT 协议”。我无法更改此设备中的订阅主题和发布主题,因此我必须能够在 Azure(函数应用程序)中设置此“自定义主题”。
为此,我创建了一个功能应用程序(IoT Hub(事件中心)),但我不知道如何在此处实现“发布and/or 订阅主题”。所有例子都是关于“messages/events”。
run.csx
public static async void Run(EventData myIoTHubMessage, TraceWriter log)
{
log.Info($"{myIoTHubMessage.SystemProperties["iothub-connection-device-id"]}");
var deviceId = myIoTHubMessage.SystemProperties["iothub-connection-device-id"].ToString();
var msg = JsonConvert.SerializeObject("{\"Values\": {\"Slave 8.Channel 1.Output\": false,");
var c2dmsg = new Microsoft.Azure.Devices.Message(Encoding.ASCII.GetBytes(msg));
await client.SendAsync(deviceId, c2dmsg);
}
设备配置
Azure IOT 中心不是通用的 MQTT 代理。面向设备的方面有预定义的主题,请参阅更多详细信息 here。
通过基于 AMQP 协议的面向服务端点向设备发送 C2D 消息。您应该使用来自 Microsoft Azure IoT 服务客户端 SDK (Microsoft.Azure.Devices) 的 ServiceClient 代理。以下代码片段显示了这部分内容:
// create proxy
string connectionString = ConfigurationManager.AppSettings["myIoTHub"];
var client = ServiceClient.CreateFromConnectionString(connectionString);
// send AMQP message
await client.SendAsync(deviceId, c2dmsg);
在面向设备的一侧,设备应订阅以下主题过滤器:
devices/{device_id}/messages/devicebound/#