[英]AWS EC2 client/server can't communicate via Node HTTP server
我有兩個AWS EC2實例。 服務器和客戶端Node 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() {
...
});
解決方案:我向運行server.js應用程序的服務器中的Windows防火牆添加了一個自定義TCP規則-允許客戶端的IP連接到端口4080。完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.