2017-05-27 47 views
2

我有一个web应用在端口8080上的亚马逊EC2实例上运行,webapp在启动时启动一个Socket 90端口监听端口。如何在Amazon EC2实例上允许Socket IO请求?

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

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

不幸的是,这种要求越来越封闭,如图socket.io requests blocked

我觉得这个问题对我的EC2实例的入站规则,所以我允许的流量为目的,如图所示: Ec2 instance inbound rules

但请求仍然受阻......

注:当我的应用程序在本地托管,一切工作正常。

那么,为什么亚马逊这样做,我该怎么做才能解决这个问题呢?

UPDATE:

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

netstat output on port 9092

也对什么样的Firefox显示我一个请求尝试时刻的样子:

socketio request timings

+0

“亚马逊”不是“以这种方式行事”。他们没有隐藏的规则来阻止事物。有些东西你配置不正确,但没有足够的信息显示在这里来说明问题。当你说连接被“封锁”时,你说的比你在这里展示的要多。它没有成功,当然,但是具体说它被“封锁”的理由是什么?什么'netstat -a -n | grep 9092'显示,在实例上? –

+0

谢谢@ Michael-sqlbot评论,我更新了我的问题。感谢您看看它。 –

+0

它看起来像你的'socket.io'服务器绑定到本地接口,无法到达外部。你可以分享设置'socket.io'服务器的代码吗? – robertklep

回答

2

它转向我将我的服务器绑定到本地主机地址,就好像它是从本地主机访问的一样。

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

+0

我正在做类似的事情,我试图在两个EC2实例之间进行通信,并看到“网关超时错误” – RRP