Javascript Can';t连接到我的VPS上的node.js服务器

Javascript Can';t连接到我的VPS上的node.js服务器,javascript,node.js,socket.io,vps,Javascript,Node.js,Socket.io,Vps,嗯,我希望这个问题不要愚蠢或重复。我保证我做了很多研究和测试 我的VPS上有一个服务器,代码如下: var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); server.listen(8080); io.on('connection', function(socket) { socket.on('hello', func

嗯,我希望这个问题不要愚蠢或重复。我保证我做了很多研究和测试

我的VPS上有一个服务器,代码如下:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(8080);

io.on('connection', function(socket) {
  socket.on('hello', function() {
    console.log('Hello received');
  }
}
以及另一台计算机中的客户端

<script>
  var socket = io.connect('http://[VPS Public IP]:8080');
  io.emit('hello');
</script>

var socket=io.connect('http://[VPS公共IP]:8080');
io.emit('hello');
这在使用专用IP地址和同一网络时有效。当使用公共IP时,这不起作用。你知道为什么会这样吗


谢谢。

好的,经过更多的测试,我已经解决了自己的问题

我意识到VPS公共IP(X.X.X.209)不同于他们使用串行控制台工具通过SSH(X.X.X.221)给我连接的IP地址

当我真正的公共IP是第一个IP地址时,我正在使用第二个IP地址X.X.X.221。一旦我使用了X.X.X.209,它就可以正常连接了


感谢您的评论和想法。

VPS上是否有防火墙阻止端口?节点是否绑定到0.0.0.0?这是一个运行Ubuntu 16.04的VPS。我曾试图禁用ufw(Ubuntu的默认防火墙),但我的VPS并没有安装它,所以我认为并没有防火墙。我说得对吗?我已将server.listen(8080)替换为server.listen(8080,“0.0.0.0”),但没有任何更改。通过命令
telnet VPS\u Public\u IP 8080验证连接是否成功连接到telnet。