首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我要从Azure事件中心得到混乱的消息体数据。使用控制台应用程序获取数据的官方教程

为什么我要从Azure事件中心得到混乱的消息体数据。使用控制台应用程序获取数据的官方教程
EN

Stack Overflow用户
提问于 2022-01-16 18:16:12
回答 1查看 103关注 0票数 -2

我跟随微软的文章尝试使用事件集线器中的事件数据。

我有一个esp32每10秒发送一条遥测消息到Azure IOT集线器,IOT集线器会将消息路由到事件中心,消息放在那里让我从控制台应用程序中检索。

ESP32上的代码如下所示

代码语言:javascript
复制
        float temperature = (float)random(0, 50);
        float humidity = (float)random(0, 1000) / 10;
        snprintf(messagePayload, MESSAGE_MAX_LEN, messageData, DEVICE_ID, messageCount++, temperature, humidity);

        //// Below are the important part, I tried sending messagePayload, or a simple hello word string.
        EVENT_INSTANCE *message = Esp32MQTTClient_Event_Generate(/*"HelloWorld"*/ messagePayload, MESSAGE);
        Esp32MQTTClient_Event_AddProp(message, "temperatureAlert", "true");
        Esp32MQTTClient_SendEventInstance(message);

上面的过程对我来说似乎很好,因为我可以看到数据被传输到Azure的IOT中心。

我可以看到Azure CLI中的数据流

但是当我复制官方教程中的代码来使用控制台应用程序中的遥测数据时。

实际的问题就会发生。

Console.WriteLine("\tReceived event: {0}", Encoding.UTF8.GetString(eventArgs.Data.Body.ToArray()));

是的,我得到了一些字符串,这些字符串看起来有点像我刚刚从Esp32发送的数据。

我得到的全部数据

但我为什么要:

"body":"eyJkZXZpY2VJZCI6ImVzcDMyIiwgIm1lc3NhZ2VJZCI6MSwgIlRlbXBlcmF0dXJlIjoxOS4wMDAwMDAsICJIdW1pZGl0eSI6MzAuNzk5OTk5fQ=="}

而不是

"body":"{\"deviceId\":\"esp32\", \"messageId\":8, \"Temperature\":3.000000, \"Humidity\":21.500000}"

数据似乎被搅乱了,它实际上反映了我从Esp32发送的数据,例如:

  1. 如果我只发送一个"Hello",我就会收到"body":"SGVsbG8="
  2. 如果我发送"HelloWorld",,我将收到"body":"SGVsbG9Xb3JsZA=="

我尝试过的事情:

1.更改所发送的数据字符串,从而发现加扰数据反映了实际数据。

2.尝试使用控制台应用程序将数据发送到事件中心并检索它(就像官方文档一样),我可以完美地获得我发送的数据,但我最终需要从我的Esp32中正确发送数据。

我对每件事都很陌生,请给我一些提示,关键词,基本上任何东西都会有帮助。

此外,请随时指出这篇文章中的任何错误,我认为我可能误解了很多术语,或者我没有正确地提出问题。

我将尝试用一些延迟来回复任何评论。(我每天都很安静,很忙,我住在UTC+8时区,所以我可能在睡觉。)

谢谢你提前提供帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-16 18:23:41

您要返回的数据是Base64编码的。您所需要做的就是解码这些数据,然后您将看到实际的字符串数据。

你会做这样的事情:

代码语言:javascript
复制
var text = System.Text.Encoding.UTF8.GetText(System.ConvertFromBase64String("base64-encoded-string"));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70732851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档