客户端无法连接到socket.io命名空间

时间:2017-10-19 22:49:55

标签: node.js socket.io

我正在使用socket.io和nodeJs开发一个应用程序。当我在我的本地机器上开发时,我能够正确连接到命名空间。但是,当我将应用程序部署到Amazon EC2实例时,只连接了根(/)命名空间。

服务器代码:

io.on('connection', function(socket) {
  console.log('root called');
  socket.on('test', function() {console.log("ROOT")})
});

var namespace = io.of('/namespace');
namespace.on('connection', function(socket) {
  console.log('namespace called');
  socket.on('test', function() {console.log("NAMESPACE")});
});

客户端代码

var socket2 = io.connect('/namespace', {
  transports: ['websocket'],
  upgrade: false
});

setTimeout(function() {
    socket2.emit('test');
},3000);

当我在EC2实例上启动NodeJS应用程序并查看日志时,记录的唯一内容是:root called。命名空间永远不会被调用/连接到。所以连接得到了,但客户端只连接到根命名空间。

但是,当我对本地运行的应用程序执行相同操作时,它会连接到root和命名空间。

root called
namespace called

然后每3秒:

ROOT
NAMESPACE

这是EC2实例的问题吗?或者还有其他事情发生在这里吗?

提前致谢。

0 个答案:

没有答案