const net = require("net");
const Socket = net.Socket;
const getNextPort = async (port) => {
return new Promise((resolve, reject) => {
const socket = new Socket();
const timeout = () => {
resolve(port);
socket.destroy();
};
const next = () => {
socket.destroy();
resolve(getNextPort(++port));
};
setTimeout(timeout, 200);
socket.on("timeout", timeout);
socket.on("connect", function () {
next();
});
socket.on("error", function (exception) {
if (exception.code !== "ECONNREFUSED") {
reject(exception);
} else {
next();
}
});
socket.connect(port, "0.0.0.0");
});
};
getNextPort(8080).then(port => {
console.log("port", port);
});