我有两个AWS EC2实例。服务器和客户端节点JS应用程序。
本地我的代码工作正常。 但在AWS,客户端只需在一段时间后关闭 - 比如30秒 - 没有任何警告/异常(由于某种原因它无法找到并连接到服务器)
两个AWS实例都在运行:Windows Server 2016 Base。
两个AWS实例都有自己的“AWS安全组”。只是为了确保我没有阻止安全组目前允许的任何事情: “所有流量到任何IP” - 包括传入和传出流量。
两个实例都在AWS中的“可用区”中运行。
服务器正在主机侦听:'0.0.0.0',端口:4080。 客户端尝试在端口4080连接到服务器的IP。我试图连接到所有可能的选项 - 例如:
我甚至无法从客户端或我自己的PC上ping服务器的IP。我可以通过RDP访问两个AWS实例。
以下是我的一些代码:
var server = require('http').createServer();
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ server: server });
server.on('request', app);
server.listen(_port, '0.0.0.0', function () { console.log('SERVER STARTED! (listening on port # ' + _port + ')') });
var WebSocket = require('ws');
var _ws = new WebSocket(THE_SERVER_IP);
_ws.on('open', function open() {
...
});
_ws.on('message', function (data, flags) {
...
});
_ws.on('close', function close() {
...
});
答案 0 :(得分:0)
解决方案:我将自定义TCP规则添加到运行我的server.js应用程序的服务器中的Windows防火墙 - 这允许客户端的IP连接到端口4080.完成。