首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将客户端连接到AWS上的远程套接字

无法将客户端连接到AWS上的远程套接字
EN

Stack Overflow用户
提问于 2018-11-16 09:34:27
回答 1查看 204关注 0票数 3

我正面临一个与socket.io的新开发有关的问题。

我有一个运行在AWS EC2实例上的EC2服务器。它是一个单独的实例,在端口10000上具有一个公共(55.55.55.55)和一个私有ip地址( 10.0.1.1 )。

启动服务器,然后转到我在另一个VPC ( 10.5.1.1/16 )和另一个公共ip地址100.100.100.100中创建的EC2实例上创建的网站。

这是我在这个实例上运行的代码,websocket的客户端(显示一个简单的聊天测试)。

代码语言:javascript
复制
<script>
        const display_panel = document.getElementById('ws');
        const number_of_lines_displayed = document.getElementById('info_lines');

        let socket = io('http://55.55.55.55:10000');

        let line_counter = 0;

        socket.on('test', (msg) => {

            if(line_counter < {{ max_lines }})
            {
                let span = document.createElement('span');
                let text = document.createTextNode(msg);
                let newline = document.createElement('br');

                span.appendChild(text);
                display_panel.insertBefore(newline, display_panel.firstChild);
                display_panel.insertBefore(span, display_panel.firstChild);

                number_of_lines_displayed.innerHTML = 'line(s): ' + line_counter++;
            }
        });
    </script>

然后,我有一个连接超时。

在服务器端,我已经启动了服务器,尝试了所有可能的解决方案,但在所有情况下我都无法连接。

  • 10.0.1.1:10000
  • 127.0.0.1:10000
  • 0.0.0.0:10000
  • 55.55.55:10000

在最后一个例子中,服务器给出了这个错误。

代码语言:javascript
复制
 Bugsnag:  Encountered an uncaught error, terminating…
1|test | Error: listen EADDRNOTAVAIL 55.55.55.55:10000
1|test |     at Object._errnoException (util.js:992:11)
1|test |     at _exceptionWithHostPort (util.js:1014:20)
1|test |     at Server.setupListenHandle [as _listen2] (net.js:1338:19)
1|test |     at listenInCluster (net.js:1396:12)
1|test |     at doListen (net.js:1505:7)
1|test |     at _combinedTickCallback (internal/process/next_tick.js:141:11)
1|test |     at process._tickDomainCallback (internal/process/next_tick.js:218:9)
1|test |     at Function.Module.runMain (module.js:695:11)
1|test |     at startup (bootstrap_node.js:191:16)
1|test |     at bootstrap_node.js:612:3

我不知道我怎么能让这东西运转起来。当我试图达到公共ip时,我不需要在VPC之间架起一座桥梁(这将是我最喜欢的解决方案)。

Netstat给我这个在任何情况下

代码语言:javascript
复制
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 10.0.1.1:10000          0.0.0.0:*               LISTEN      18132/test.js

在本地环境中,一切都很好,所以代码不是问题,它主要是一个网络问题。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2018-11-19 13:49:43

发现了问题:我们需要在EC2实例的AWS控制台中打开端口。

实例>安全组>入站规则

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53335007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档