所以我从child.fork
切换到cluster.fork
以生成我运行的聊天机器人,因为群集共享tcp端口。但是,我似乎无法让集群在同一个端口上侦听。
代码:
var cluster = require('cluster');
var express = require('express');
if (cluster.isMaster) {
cluster.fork({path:'hello'});
cluster.fork({path:'goodbye'});
} else {
var web = express();
web.get("/"+process.env.path,function (req,res){
return res.end("hello, "+process.env.path);
});
web.listen(3000);
}
这是一半工作。我现在没有EADDRINUSE
错误,但只显示其中一条路径。
答案 0 :(得分:1)
由于很多原因,它无法运作。
express.express
不存在。您正在寻找简单的express
方法process.evn
不存在。您正在寻找process.env
res.end
或其他方法来响应客户端。查看http module documentation或express one。一些有效的代码:
var cluster = require('cluster');
var express = require('express');
if (cluster.isMaster) {
cluster.fork({path:'hello'});
} else {
//this is in a required file
var web = express();
web.get("/"+process.env.path, function(req,res){
res.end("hello world!");
});
web.listen(3000);
}
如果您想使用多个工作人员,只需在if(cluster.isMaster)
条件下分叉。