Azure IoT 中心:通过 browser-side javascript API 检索消息

Azure IoT Hub : retrieving messages via browser-side javascript API

您知道是否可以通过 Microsoft Azure 和 IoT Hub 在浏览器中使用 javascript 客户端 运行 检索 device-to-cloud 消息(即没有节点 js)?

据我所知,这目前是不可能的,但我想确定一下(即所有当前的 API 只能在服务器端工作)。

Edit1:REST API 可能是尝试这样做的明显选择;但是,通过手动请求尝试这些 API 后,似乎响应没有提供 allow-access-control-origin header,因此由于 CORS,我无法从 ajax 调用它们。

我自己还没有尝试过,但我的理解是可以使用 IoT Hub REST API.

在 JavaScript 中检索云到设备的消息

更新:示例代码已根据 Azure IoT 中心团队的要求删除,他们不喜欢用户从浏览器连接到 IoT 中心 (https://github.com/Azure/azure-iot-sdk-node/issues/112#issuecomment-338073636) .

对于此答案中的损坏链接,我们深表歉意。


看来这是个老问题了,不过我发现还是没有人能给出正确的答案。

简而言之,有没有办法在浏览器中读取 IoT Hub D2C 消息?答案是肯定的!

你不应该使用 RESTful API 循环检查消息,而是使用 AMQP over WebSockets。

在开始之前,你必须知道IoT Hub有两个方面,Device端和Service端。对于设备端,您可以使用 HTTP、AMQP 和 MQTT 连接到 IoT 中心,但是对于服务端,您只能使用 AMQP 连接到 IoT 中心。

幸运的是,Red Hat 已经写了一个 AMQP over WebSockets Node 模块,你可以做一些简单的工作让它在浏览器中工作。

您可以从 https://github.com/grs/rhea 了解更多关于 AMQP 节点模块的信息。

此外,我们还制作了一个基于网络的工具来接收 D2C 消息https://iotdevtool.com/service/, you can learn more about it from https://blogs.msdn.microsoft.com/zhiqing/2017/03/16/connect-to-azure-event-hub-in-browser-using-amqp-over-websockets/