AWS websocket服务器:从浏览器连接时出现403错误,从Python很好

Posted

技术标签:

【中文标题】AWS websocket服务器:从浏览器连接时出现403错误,从Python很好【英文标题】:AWS websocket server: 403 error when connecting from browser, fine from Python 【发布时间】:2018-09-17 03:28:40 【问题描述】:

我在 AWS EC2 实例上部署了一个 websocket 服务器。我可以通过 Python 脚本(使用 websocket.create_connection)连接到这个 websocket 而没有任何问题,但是在 Chrome 中运行 javascriptvar ws = new Websocket(.....) 时出现 403 错误:Error during WebSocket handshake: Unexpected response code: 403

我确保更改 EC2 实例上的安全组以允许所有入站和出站流量。

感谢所有建议!

编辑:弄清楚这里发生了什么。这是我的 Go websocket 服务器中的默认来源检查功能的问题。

【问题讨论】:

请将您的完整解决方案作为答案发布,或删除问题。 【参考方案1】:

这是 gorilla/websocket 包的服务器端问题。必须添加这个 CheckOrigin 函数:

var upgrader = websocket.Upgrader
    ReadBufferSize: 1024,
    WriteBufferSize: 1024,
    CheckOrigin: func(r *http.Request) bool return true,

【讨论】:

以上是关于AWS websocket服务器:从浏览器连接时出现403错误,从Python很好的主要内容,如果未能解决你的问题,请参考以下文章

通过 HTTP 集成从 AWS Api Gateway 中的 websocket 提取 websocket 连接 ID 和其他详细信息

通过 websocket 连接 AWS MQTT

AWS websocket在连接时抛出CORS错误

在 node.js 服务器上使用 nginx 时出现“websocket 连接无效”

在 AWS 上使用 WebSocket 实现的 Web 服务上的蓝绿部署

连接到 AWS DocumentDB 时出现连接错误