0
我正在尝试构建一个“Hello World”多进程node.js HTTP服务器。Node.js集群不在监听
使用节点docs here中提供的代码示例我无法触发“监听”事件,因此HTTP服务器无法响应请求。然而,我正在开展“在线”活动。
如何让服务器响应请求?
我在OSX 10.8.4上运行,节点v0.10.7。
这是我有:
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('online', function(worker) {
console.log('A worker with #' + worker.id);
});
cluster.on('listening', function(worker, address) {
console.log('A worker is now connected to ' + address.address + ':' + address.port);
});
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);
}
您发布的示例代码对我来说工作得很好。仔细检查numCPUs是否大于0? – ChrisCM
它打印“8”,因此8个进程分叉。示例代码是否实际接收并响应HTTP请求? –
是的,使用您的示例代码,我访问浏览器中的以下链接:http:// localhost:8000。我看到你好世界。我在OSX 10.8.4,Node v0.8.2(很小)。 – ChrisCM