如何在Amazon EC2中为Node.js Socket.io打开端口?

如何在Amazon EC2中为Node.js Socket.io打开端口?,node.js,amazon-ec2,socket.io,Node.js,Amazon Ec2,Socket.io,我有Node.js应用程序可以在端口上工作: server.listen(8181); 因此,当它工作时,文件socket.io应通过以下路径可用: http://152.30.141.23:8181/socket.io/socket.io.js 但我无法访问此文件 我尝试在Amazon控制台中打开安全组中的端口并设置: 入站规则部分中的所有ICMP | Anywhere 0.0.0 但它仍然不起作用 代码很简单: var app = require('express')(), re

我有Node.js应用程序可以在端口上工作:

server.listen(8181);
因此,当它工作时,文件socket.io应通过以下路径可用:

http://152.30.141.23:8181/socket.io/socket.io.js
但我无法访问此文件

我尝试在Amazon控制台中打开安全组中的端口并设置:


入站规则部分中的所有ICMP | Anywhere 0.0.0

但它仍然不起作用

代码很简单:

var app = require('express')(),
    redisServer = require('redis'),
    path = require('path'),
    time = require('time'),
    server = require('http').Server(app),
    _ = require('underscore'),
    io = require('socket.io')(server);

server.listen(8181);

您不需要为socket.io打开额外的端口,因为它(默认情况下)使用与HTTP服务器相同的端口。“无法访问此文件”是什么意思?你收到了404还是什么?此外,显示相关代码可能会有所帮助,因为这似乎是一个配置/路由问题。是的,我无法通过消息获取此文件的内容:
ERR\u CONNECTION\u TIMED\u OUT
,因此,当我运行应用程序时,它会创建服务器socket.io文件,我尝试获取
All ICMP | Anywhere 0.0.0
不会帮助您,因为ICMP!=这几乎可以肯定是一个TCP套接字。您需要一条规则,允许入站TCP从安全组中的任何位置访问端口8181<代码>连接超时正是由于缺少安全组规则而出现的错误。我尝试使用端口8181打开TCP,但没有帮助