您是否知道是否可以使用 Microsoft Azure 和 IoT Hub 检索设备到云消息,以及在浏览器 中运行的 javascript 客户端 (即无节点 js)?
我的理解是目前这是不可能的,但我想确保(即所有当前的 API 只能在服务器端工作)。
Edit1 :REST API 可能是尝试这样做的明显选择;但是,通过手动请求尝试了这些 API 后,响应似乎没有提供 allow-access-control-origin header ,因此由于 CORS,我无法从 ajax 调用它们。
最佳答案
更新: 示例代码已根据 Azure IoT 中心团队的要求删除,他们不喜欢用户从浏览器 ( https://github.com/Azure/azure-iot-sdk-node/issues/112#issuecomment-338073636 ) 连接到 IoT 中心。
很抱歉此答案中的链接断开。
这似乎是一个古老的问题,但是,我发现仍然没有人可以给出正确的答案。
简而言之,有没有办法在浏览器中读取 IoT Hub D2C 消息?答案是肯定的!
您不应该使用 RESTful API 来循环检查消息,而应该使用 AMQP over WebSockets。
在开始之前,您必须知道 IoT Hub 有两个方面,设备端和服务端。对于设备端,您可以使用 HTTP、AMQP 和 MQTT 连接到 IoT 中心,但是,对于服务端,您只能使用 AMQP 连接到 IoT 中心。
幸运的是,Red Hat 已经写了一个 AMQP over WebSockets Node 模块,你可以做一些简单的工作让它在浏览器中工作。
您可以从 https://github.com/grs/rhea 了解有关 AMQP 节点模块的更多信息。
此外,我们还制作了一个用于接收 D2C 消息的基于 Web 的工具 https://iotdevtool.com/service/ ,您可以从 https://blogs.msdn.microsoft.com/zhiqing/2017/03/16/connect-to-azure-event-hub-in-browser-using-amqp-over-websockets/ 了解更多信息。
关于Azure IoT 中心 : retrieving messages via browser-side javascript API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35910242/