每次我运行cluster.fork(),我得到一个错误:绑定EADDRINUSE

我正在使用node.js,并使用群集模块。 每次我运行cluster.fork(),我总是得到一个

throw er; // Unhandled 'error' event Error: bind EADDRINUSE at exports._errnoException (util.js:746:11) at cb (net.js:1205:33) at rr (cluster.js:592:14) at Worker.<anonymous> (cluster.js:563:9) at process.<anonymous> (cluster.js:692:8) at process.emit (events.js:129:20) at handleMessage (child_process.js:324:10) at Pipe.channel.onread (child_process.js:352:11) 

我一直在Google上search,我不知道这是怎么发生的,因为我没有通过任何端口号。

谢谢

编辑:张贴代码

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

这是一个函数,我通过调用节点app.js运行的app.js中调用

您提供的堆栈跟踪表明EADDRINUSE来自net模块。 EADDRINUSE通常意味着您尝试EADDRINUSE地侦听IP /端口组合。 所以,例如,如果这是一个群集的Web服务器,也许所有的工作人员都试图绑定到同一个IP地址上的端口80。 没有更多的代码,就不可能知道发生了什么事情。

您在随后的评论中给出的示例代码不会为我引发EADDRINUSE 。 相反, cluster.fork is not a function错误cluster.fork is not a function因为在调用cluster.fork()之前没有检查cluster.isMaster

我在所有的线程上多次启动一个服务器,所以这个端口已经绑定了

Interesting Posts