当前位置: 首页 > 知识库问答 >
问题:

如何以IoTubMessage\u字符串格式发送Azure云到设备消息?

嵇光临
2023-03-14

我正在使用Azure IOT SDK,试图发送一条带有字符串正文的云到设备消息,并在SDK中接收该消息。无论我发送什么,SDK都会以字节数组格式显示。如何从云向我的设备SDK发送字符串而不是字节数组?

这是我遵循的代码示例:https://github.com/Azure/azure-iot-sdk-c/blob/master/iothub_client/samples/iothub_ll_c2d_sample/iothub_ll_c2d_sample.c

这是我的回调:

IOTHUBMESSAGE_DISPOSITION_RESULT CAzureProcessor::ReceiveMessageCallback(IOTHUB_MESSAGE_HANDLE message, void* userContextCallback)
{
    CMyObject* pObject = (CMyObject*)userContextCallback;
    if (pObject != NULL)
    {
       IOTHUBMESSAGE_CONTENT_TYPE content_type = IoTHubMessage_GetContentType(message);
        if (content_type == IOTHUBMESSAGE_STRING)
       {
            //do stuff
       }
    }
    return IOTHUBMESSAGE_ACCEPTED;
}

我的问题是,我从来没有“做事情”,因为当我从Azure门户上的“到设备的消息”页面或从设备资源管理器发送C2D消息时,IoTHubMessage_GetContentType总是返回IOTHUBMESSAGE_BYTEARRAY。我如何从这两点中的任何一点发送字符串?

如果有帮助,这是我尝试发送的字符串:

[{“devicename”:“我的ROC”,“别名”:“标高”,“值”:100}]

共有1个答案

巫马自明
2023-03-14

我不知道你是否看过这篇文章,因为我使用的是同一个解决方案的变体,它对我的C2D通信很有效。

使用IoT DevKit和Azure IoT Hub发送云到设备消息-设备代码

希望这有帮助。

 类似资料:
  • 在搜索文档之后,我找不到任何关于如何在没有使用外部服务器的情况下使用FCM向设备发送消息的信息。 例如,如果我正在创建一个聊天应用程序,我将需要向用户发送关于未读消息的推送通知,因为他们不会一直在线,而且我不可能在后台有一个始终连接到实时数据库的持久服务,因为这会占用太多资源。 那么当某个用户“B”向他/她发送聊天消息时,我将如何向用户“a”发送推送通知呢?我需要一个外部服务器来完成这个任务吗?还

  • null 当我确实从Firebase云消息发送给自己一条测试消息时,它确实工作正常,并且成功地向每个设备发送了一个推送通知。 例如,以下是 null

  • 是否可以将Azure服务总线添加到云到设备消息队列中?当我收到消息时,我必须确保所有消息都以相同的顺序到达IoTHub。我找不到IoTHub中的标准队列是否提供它。我想使用ServiceBus的第二个原因是过期时间也更长,IoTHub只提供48小时的消息。我知道通过在IoTHub配置中添加endpoint和路由,我可以很容易地在设备消息中使用ServiceBus,但是C2D消息呢?

  • 我试图使用Azure IoT中心和REST api(不使用Azure IoT中心python SDK)从云向我的设备发送消息。 我可以通过uri

  • 我正在构建一个基于MQTT的Rust应用程序,该应用程序向IoTHub发送消息,以便将消息转发到监听云到设备消息的目标设备。 目标设备“myDev”订阅了主题,它可以从IoTHub接口(“Azure门户上的消息到设备”)接收消息。 我发现的用其他编程语言实现这一点的示例使用Azure IoT SDK,它有一个客户端服务。例如,参见Java示例:https://docs.microsoft.com/

  • 我目前正在尝试实现对C2D消息的一些处理。到目前为止,从IoT中心功能发送C2D消息就像一个魔咒,我接收和处理有效负载没有任何问题。 然而,我的问题是,在启动端,我总是得到肯定的确认,即使我在处理命令时杀死了物联网设备。似乎所有文档在涉及到对C2D消息的响应时都开始变得有点模糊。我确实多次阅读了物联网中心功能的相关文档。。。希望我没有错过一个重要的部分,但我对此表示怀疑。 那么,我如何显式地将响应