2017-02-05 13 views
-1

Я новичок в Node.js и Socket.io, и для моего текущего проекта веб-разработки у меня есть настройка в Socket.io, и мне нужно быть в состоянии сделать много и много (Потенциально сотни) отдельных экземпляров. Есть какой-либо способ сделать это?Как дублировать сервер Node.js/Socket.io

+0

Лучше вам следует объяснить, в чем ваш прецедент, поэтому мы можем посоветовать вам больше. По сути, у вас должен быть один экземпляр на сервер, поэтому, если вы хотите сотню экземпляров, затем создайте сотни серверов. Но нет ничего естественного в том, чтобы иметь сотни экземпляров socket.io. – Hosar

+0

Почему бы вам просто не использовать один сервер и не использовать его много клиентов? На сервере чата не должно быть проблем с масштабированием. Вы должны иметь возможность размещать тысячи пользователей с одним сервером. Это обычный вариант использования для сервера. – jfriend00

ответ

0

Порождение дочернего процесса в узле довольно просто, особенно если это другой процесс узла.

child_process.fork является одним из возможных вариантов

import cp = require('child_process'); 
 

 
var proc = cp.fork('path/to/module'); 
 
proc.on('error', function(err) { 
 
    console.error('The process failed to start'); 
 
    console.error(err); 
 
}); 
 

 
proc.on('exit', function(code, signal) { 
 
    console.log('The process was terminated by ' + signal + ' and exited with code ' + code); 
 
});

Вы также можете посмотреть на cluster, он использует child_process.fork нереститься детей, но дополнительные функциональные возможности построены на вершине, чтобы автоматически обмениваться ресурсами между процессами, например, с дескриптором сервера.

Хотя я точно не знаю, как вы планируете использовать сотни детей, я бы рекомендовал ограничить детей количеством ядер, доступных на машине. Нерест сотен детей может помешать работе. Вы должны полагаться на асинхронную природу узла, чтобы справляться с масштабируемостью, нерестовые работники не очень помогают значительно балансировать нагрузку на обработку доступных процессоров.

+0

Хотя это технически является ответом на создание множества экземпляров, это, вероятно, не то, что должен делать OP. Вероятно, у них должно быть много пользователей, использующих один сервер, а не много серверов. – jfriend00

+0

О, и вы также не можете иметь все эти экземпляры сервера, которые слушают один и тот же порт. – jfriend00

 Смежные вопросы

  • Нет связанных вопросов^_^