Как остановить сервер node.js, не убивая процесс?

Скажем, сервер создан так:

var net = require('net');

var server = net.createServer();
server.listen(32323, '127.0.0.1');

server.close(); // gives a "not running" error if there is IP in the listen statement

есть ли способ остановить его из node.js, например, не завершая/убивая весь процесс?

Также, вот более сложный пример, который не останавливается независимо от IP, к которому привязан сервер:

var net = require('net');

var server = net.createServer(function(socket) {
    socket.on('data', console.log);
    server.close();
});

server.listen(32323);

var socket = net.createConnection(32323);
socket.write('hi');
27
задан Fluffy 20 January 2012 в 16:55
поделиться

1 ответ

server.close () предотвращает новые подключения и ожидает закрытия всех клиентов.

Чтобы принудительно убить сервер узла, необходимо вызвать server.close (), а затем закрыть все открытые соединения со стороны сервера.

Когда клиент подключается, следите за сокетом.

var sockets = []

var server = net.createServer((socket) => {
   sockets.push(socket)
})

Принудительно убить ...

server.close()
sockets.forEach( (s) => s.end() )
0
ответ дан 28 November 2019 в 05:39
поделиться
Другие вопросы по тегам:

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