我正在使用 amqp 将消息从我的 iot 设备发送到 Azure IoTHub。我正在用 C# 编写一个程序,我想检查设备是否能够与 iot hub 建立连接。实现这一目标的最佳方法是什么?是否可以创建回调函数?
我注意到我的一台设备在封闭的网络上,即 amqp 端口被阻止。但是设备记录它正在向 IoT Hub 发送消息(没有抛出异常),当我检查 IoT Hub 时没有收到任何消息。这就是为什么我要检查设备是否能够与 IoT Hub 建立连接
java sdk 有一个 eventcallback 类,但没有 C#,或者我错过了什么?
protected static class EventCallback implements IotHubEventCallback {
public void execute(IotHubStatusCode status, Object context) {
System.out.println("IoT Hub responded to message with status " + status.name());
}
}
编辑:这会是一个好的实现吗?
try {
client = DeviceClient.CreateFromConnectionString("***", TransportType.Amqp);
var task = client.OpenAsync();
task.Wait(30000); // wait for 30 sec
if (task.IsCompleted) {
Console.WriteLine("Connected");
await client.CloseAsync();
}
else {
throw new Exception("Time out");
}
}
catch (Exception e) {
Console.WriteLine("Error");
}