您知道是否可以使用Microsoft Azure和IoT Hub检索设备到云的消息,其中javascript客户端在浏览器中运行(即没有节点js)?
我的理解是,这目前无法实现,但我想确保(即所有当前的API只能在服务器端工作)。
Edit1 :REST API可能是尝试执行此操作的明显选择;但是,通过手动请求尝试了这些API,似乎响应没有提供allow-access-control-origin标头,因此我无法通过CORS从ajax调用它们。
答案 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中检索云到设备的消息。