基于 WebSocket 协议的 AWS IoT MQTT
Posted
技术标签:
【中文标题】基于 WebSocket 协议的 AWS IoT MQTT【英文标题】:AWS IoT MQTT over WebSocket Protocol 【发布时间】:2016-05-22 14:12:41 【问题描述】:我一直在关注 AWS IoT 文档,尝试开始使用 MQTT 教程,网址为 http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#mqtt-ws 在 Web 应用程序中设置与 AWS IoT 的 WebSocket 连接。第一步是通过向按照教程中的步骤创建的端点发出 GET 请求来启动 WebSocket 连接,但我收到此错误:
XMLHttpRequest cannot load <my endpoint> Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
我想知道是否有人遇到过这个错误,如果有,他们是如何解决的?
这是代码https://github.com/dwyl/learn-aws-iot/blob/2c8035728ec8228e296580c8714f3f7ace870fbe/src/js/components/App.js的链接
【问题讨论】:
失败的 GET 请求是对 describe-endpoint API 还是打开 WebSocket?如果尝试打开 WebSocket,您是使用支持 WebSockets 的 javascript 客户端还是向端点发出正常的 HTTP 请求? 我正在通过 XMLHttpRequest 发出一个普通的 HTTP 请求,以使用格式为wss://<endpoint>.iot.<region>.amazonaws.com/mqtt
的 URL 打开 Websocket,该 URL 已使用亚马逊签名版本 4 进行了签名
【参考方案1】:
这是我如何打开频道的示例。我正在使用 Cognito unauth 角色作为订阅者。我也在使用 JS Paho 客户端。
http://draw.kyleroche.com/main.js
【讨论】:
谢谢!你能分享你的SigV4Utils.getSignedUrl
函数吗?
是的,如果你能分享这个 utils 函数那就太好了。似乎在文档中的任何地方都找不到它
查看here了解正在使用的实用功能。
更多信息在docs。【参考方案2】:
AWS 实验室还在此处发布了一个 MQTT over WebSockets 参考示例:https://github.com/awslabs/aws-iot-examples
【讨论】:
以上是关于基于 WebSocket 协议的 AWS IoT MQTT的主要内容,如果未能解决你的问题,请参考以下文章
如何为 WebSocket 协议配置 AWS ELB 和 Nginx? [关闭]
如何在 AWS Elastic Beanstalk 服务器上使用 nginx 启用 WebSocket?
html 基于AWS IoT的无服务器JS-Webapp Pub / Sub演示
使用 AWS 和 Elastic Beanstalk 的 Websocket