Nodejs集群不响应Web浏览器

时间:2014-01-02 06:17:52

标签: node.js

我是Nodejs的新手,我尝试在nodejs上使用集群。但我遇到了一个问题: - 我在Nodejs API上使用关于Cluster的例子:

var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.process.pid + ' died');
  });
} else {
  // Workers can share any TCP connection
  // In this case its a HTTP server
  http.createServer(function(req, res) {
    res.writeHead(200);
    res.end("hello world\n");
  }).listen(8000);
}
  • 我运行上面的代码,但是当把url打到浏览器(localhost:8000)时,浏览器没有收到来自nodejs的任何响应(它正在连接......永远直到我杀死nodejs @@),但是,我得到了要解雇的“在线”事件。

如何让此服务器响应请求?

p / s:我尝试将事件“退出”重新生成新员工。有时当我在浏览器上输入时,控制台日志工作者x死亡然后重新生成新工作者。但是浏览器还在连接...

http://i.stack.imgur.com/RHSYY.png

帮帮我:)抱歉我的英文不好

我安装了最新版本的nodejs(v0.10.24)

1 个答案:

答案 0 :(得分:0)

我遇到了与群集类似的问题。尝试将http服务器创建部分放在setTimeout调用中。 (例如延迟1000毫秒)你应该观察到一个改进。

setTimeout(function(){ http.createServer...... }, 1000);

此外,您还可以尝试使用jxcore mt-keep创建服务器,以查看它是否适用于类似情况。

$ jx mt-keep servercode.js