我正在使用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实例的问题吗?或者还有其他事情发生在这里吗?
提前致谢。