4

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

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

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

4

2 回答 2

5

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

抱歉,此答案中的链接断开。


这似乎是一个老问题,但是,我发现仍然没有人能给出正确的答案。

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

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

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

幸运的是,Red Hat 已经编写了一个基于 WebSockets 节点的 AMQP 模块,您可以做一些简单的工作使其在浏览器中工作。

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

此外,我们还制作了一个基于 Web 的 D2C 消息接收工具https://iotdevtool.com/service/,您可以从https://blogs.msdn.microsoft.com/zhiqing/2017/03/了解更多信息16/connect-to-azure-event-hub-in-browser-using-amqp-over-websockets/

于 2017-03-18T13:25:55.577 回答
0

我自己没有尝试过,但我的理解是可以使用IoT Hub REST API在 JavaScript 中检索云到设备的消息。

于 2016-03-10T13:49:43.070 回答