我有一个 netty 服务器运行 Atmosphere 框架,用于通过 websockets 进行实时通知系统。
该系统在我的本地机器上运行良好,但是当我将它部署在 EC2 上时,它似乎无法正常工作。不过,我可以远程登录到远程 Netty 服务器。服务器可访问且端口在 EC2 上打开
Firefox 抛出以下错误
Using URL: ws://beta.myapp.com:2880/myhandle?id=1&name=Chinese_food_rule_2& X-Atmosphere-tracking-id=35490c47-59d6-abf6-36fa-431aa340d90a&X-Atmosphere-Framework=0.9&X-Atmosphere-Transport=websocket&X-Cache-Date=0&Content-Type=application/json
Websocket error, reason: undefined
Firefox can't establish a connection to the server at ws://beta.myapp.com:2880/myhandle?id=1&name=Chinese_food_rule_2&X-Atmosphere-tracking-id=35490c47-59d6-abf6-36fa-431aa340d90a&X-Atmosphere-Framework=0.9&X-Atmosphere-Transport=websocket&X-Cache-Date=0&Content-Type=application/json.
Websocket closed, reason: Connection was closed abnormally (that is, with no close frame being sent).
服务器甚至没有收到请求,这让我认为这是一些我不知道的 EC2 Web 套接字陷阱。
最佳答案
我在 php.ini 中遇到了同样的问题。
解决方案是:使用您的 private ip
创建 websocket EC2的地址。并使用您的 EC2 公共(public) IP 地址或带有 Web 套接字端口的 URL 连接该 WebSocket
您将收到来自 EC2 Web 套接字的响应
关于amazon-ec2 - 亚马逊 ec2 上的 Websockets 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826580/