pylon-app
Version:
One click, downloadless screen sharing.
33 lines (27 loc) • 740 B
JavaScript
const ipc = require("node-ipc");
ipc.config.silent = true;
function isSocketTaken(name, fn) {
return new Promise((resolve, reject) => {
ipc.connectTo(name, () => {
ipc.of[name].on("error", () => {
ipc.disconnect(name);
resolve(false);
});
ipc.of[name].on("connect", () => {
ipc.disconnect(name);
resolve(true);
});
});
});
}
async function findOpenSocket() {
let currentSocket = 1;
console.log("checking", currentSocket);
while (await isSocketTaken("myapp" + currentSocket)) {
currentSocket++;
console.log("checking", currentSocket);
}
console.log("found socket", currentSocket);
return "myapp" + currentSocket;
}
module.exports = findOpenSocket;