Задать вопрос
@cat_crash

Как сделать fork по событию server.on('connection'?

Доброго дня, любители ноды.


Прошу не сильно пинать за вопрос — я в ноде пока новичек.


Собственно задача: создавать каждый раз дочерний процесс (worker) при новом подключении к серверу.

var dnode  = require('dnode');
var net = require('net');
var cluster = require('cluster');

if (cluster.isMaster) {

	cluster.fork();
  
} else {

	var server = net.createServer(function (c) {
			var d = dnode({

	                    //some code here			
			})
			c.pipe(d).pipe(c);
	});
		
	server.listen(5050);
	
	server.on('connection', function(id) {
		cluster.fork();
	});
	
	
}


выдает неочевидную ошибку
assert.js:102

throw new assert.AssertionError({

^

AssertionError: false == true

at Cluster.cluster.fork (cluster.js:469:3)

at Server. (/home/nodejs/test.js:52:11)

at Server.EventEmitter.emit (events.js:123:20)

at TCP.onconnection (net.js:1038:8)

  • Вопрос задан
  • 2860 просмотров
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
wickedweasel
@wickedweasel
// Fork a new worker
cluster.fork = function(env) {
  // This can only be called from the master.
  assert(cluster.isMaster);
  
  // Make sure that the master has been initialized
  cluster.setupMaster();
    
  return (new cluster.Worker(env));
};
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы