簡體   English   中英

AWS EC2客戶端/服務器無法通過Node HTTP Server通信

[英]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。我試圖連接到所有可能的選項,例如:

  1. 公用DNS(IPv4)
  2. IPv4公用IP
  3. 彈性IP
  4. 私人IP

我什至無法從客戶端或我自己的PC ping服務器的IP。 我可以通過RDP很好地訪問兩個AWS實例。

這是我的一些代碼:

SERVER.JS

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 + ')') });

CLIENT.JS

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM