Azure IoT Hub:通过浏览器端JavaScript API检索消息

时间:2016-03-10 07:32:26

标签: azure azure-iot-hub

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

我的理解是,这目前无法实现,但我想确保(即所有当前的API只能在服务器端工作)。

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

2 个答案:

答案 0 :(得分:3)

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

很抱歉这个答案中的链接已损坏。

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

简而言之,有没有办法在浏览器中阅读IoT Hub D2C消息?答案绝对是!

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

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

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

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

此外,我们已经制作了一个基于网络的工具来接收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/了解更多相关信息。

答案 1 :(得分:0)

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