物联网边缘发送确认回调问题
isuue with iotedge send confirmation callback
我正在将遥测数据从 iotedge 模块发送到 Azure 云,我需要确认数据已在云端接收。发现我可以为它使用确认回调。
这是我发送数据的方式:
clientResult = IoTHubModuleClient_LL_SendEventToOutputAsync(iotHubModuleClientHandle, messageInstance->messageHandle, "output1", SendConfirmationCallback_dps, (void *)messageInstance);
这是我的回调函数:
void SendConfirmationCallback_dps(IOTHUB_CLIENT_CONFIRMATION_RESULT result, void* userContextCallback)
{
printf("Confirmation[%zu] received for message with result = %d\r\n", messageInstance->messageTrackingId, result);
}
**问题:
如果发送数据时网络不可用,我会收到错误响应吗?
我是否遗漏了实现我的目标所需的任何东西?我的代码在所有其他方面都运行良好。
**
我的问题:
确认回调中的'result'变量等于零("IOTHUB_CLIENT_CONFIRMATION_OK"),即使在发送数据时没有网络。
主板规格:
开发工具包,
iotedge V1.0.8,
Ubuntu 18.04,
ARM32
当您将遥测数据从您的模块发送到 IoT Hub 时,您实际上是在将其发送到 Edge Hub——另一个充当 IoT Hub 代理并允许客户端继续离线运行的本地模块。然后,Edge Hub 会尽快将您的数据转发到云端。因此,您看到的成功结果意味着数据已发送到 Edge Hub。您的数据将进入云端,但在这种情况下,没有内置方法可以从云端获取确认回调。
我正在将遥测数据从 iotedge 模块发送到 Azure 云,我需要确认数据已在云端接收。发现我可以为它使用确认回调。
这是我发送数据的方式:
clientResult = IoTHubModuleClient_LL_SendEventToOutputAsync(iotHubModuleClientHandle, messageInstance->messageHandle, "output1", SendConfirmationCallback_dps, (void *)messageInstance);
这是我的回调函数:
void SendConfirmationCallback_dps(IOTHUB_CLIENT_CONFIRMATION_RESULT result, void* userContextCallback)
{
printf("Confirmation[%zu] received for message with result = %d\r\n", messageInstance->messageTrackingId, result);
}
**问题: 如果发送数据时网络不可用,我会收到错误响应吗? 我是否遗漏了实现我的目标所需的任何东西?我的代码在所有其他方面都运行良好。 **
我的问题: 确认回调中的'result'变量等于零("IOTHUB_CLIENT_CONFIRMATION_OK"),即使在发送数据时没有网络。
主板规格: 开发工具包, iotedge V1.0.8, Ubuntu 18.04, ARM32
当您将遥测数据从您的模块发送到 IoT Hub 时,您实际上是在将其发送到 Edge Hub——另一个充当 IoT Hub 代理并允许客户端继续离线运行的本地模块。然后,Edge Hub 会尽快将您的数据转发到云端。因此,您看到的成功结果意味着数据已发送到 Edge Hub。您的数据将进入云端,但在这种情况下,没有内置方法可以从云端获取确认回调。