如何在Amazon EC2实例上允许Socket IO请求?

时间:2017-05-27 16:59:31

标签: amazon-ec2 socket.io

我在端口8080上的Amazon EC2实例上运行了一个Web应用程序,启动时启动了webapp,启动了一个侦听端口9092的Socket io服务器。

在连接到Socket io服务器的客户端文件中我有:

io.connect('http://<IPADDRESS>:9092');  

很遗憾,此请求已被阻止,如socket.io requests blocked所示:

我认为问题是关于我的EC2实例的入站规则,因此我允许流量用于此目的: Ec2 instance inbound rules

但请求仍然被阻止......

注意:当我的应用在本地托管时,一切正常。

那么为什么亚马逊会这样做呢?我应该怎样做才能遇到这个问题?

更新:

netstat -a -n | grep 9092在实例上输出:

netstat output on port 9092

另请查看firefox向我展示请求尝试时间的内容:

socketio request timings

2 个答案:

答案 0 :(得分:3)

它将我的服务器绑定到localhost地址,就好像它是从localhost访问一样。

感谢@robertklep评论,我确实将服务器绑定到ec2实例地址,现在它正在运行。

答案 1 :(得分:1)

从 EC2 外部与您的服务器建立套接字连接的最简单方法是侦听所有传入流量:

server.listen(3000, '0.0.0.0');

这仅推荐用于测试和开发环境。请勿将其用于生产。