我正在将 native MQTT 与 Azure IoT 中心结合使用。根本问题是,一旦有效负载被路由到 blob 存储,它就会被编码为 Base64。我相信这是由于缺少系统属性“contentType=UTF-8”造成的。
我尝试使用以下主题,但没有成功:
devices/test/messages/events/contentEncoding=UTF-8&contentType=application/json
devices/test/messages/events/contentEncoding=UTF-8
devices/test/messages/events/contentEncoding=UTF-8&contentType=applicationjson
devices/test/messages/events/.contentEncoding=UTF-8
这会将这两个项目放入“属性”嵌套中,该嵌套独立于“系统属性”嵌套(见下文)。
{"EnqueuedTimeUtc":"2019-07-31T19:24:57.4290000Z","Properties":{"contentEncoding":"UTF-8","contentType":"applicationjson"},"SystemProperties":{"connectionDeviceId":"test","connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}","connectionDeviceGenerationId":"000","enqueuedTime":"2019-07-31T19:24:57.4290000Z"},"Body":"msginbase64insteadofutf8"}
我尝试根据此处描述的“通用格式”格式化消息,但也没有成功:https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-routing-query-syntax#message-routing-query-based-on-message-properties
最佳答案
以下是发布者主题和系统属性的示例*:
devices/test/messages/events/$.ct=application%2Fjson&$.ce=utf-8
关于mqtt - 如何使用 native MQTT 设置 Azure IoT 中心 "System Properties"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297853/