Скажем, сервер создан так:
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');
server.close () предотвращает новые подключения и ожидает закрытия всех клиентов.
Чтобы принудительно убить сервер узла, необходимо вызвать server.close (), а затем закрыть все открытые соединения со стороны сервера.
Когда клиент подключается, следите за сокетом.
var sockets = []
var server = net.createServer((socket) => {
sockets.push(socket)
})
Принудительно убить ...
server.close()
sockets.forEach( (s) => s.end() )