【问题标题】:Nodejs cluster isn't response to web browserNodejs 集群不响应 Web 浏览器
【发布时间】:2014-01-02 06:17:52
【问题描述】:

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

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:我尝试让事件“退出”以重生新工人。有时当我在浏览器上按 Enter 键时,控制台日志 worker x die 然后重新生成新的 worker。但浏览器仍在连接...

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

帮帮我:)对不起我的英语不好

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

【问题讨论】:

  • node的版本是多少?
  • 我的节点是v0.10.24,最新版本在nodejs.org@@
  • 刚刚测试过,对我来说可以吗?
  • 你是如何运行这段代码的?
  • i.stack.imgur.com/RHSYY.png => 我捕获了一个图像:D 我只是使用 cmd 并移动到代码文件夹。并使用命令 node test.js 运行(test.js 是上面的代码)

标签: node.js


【解决方案1】:

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

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

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

$ jx mt-keep servercode.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多