This commit is contained in:
Vanessa 2023-01-05 21:53:31 +08:00
parent ccfa53abe2
commit 88e6e1e84e

View file

@ -388,34 +388,22 @@ const initKernel = (workspace, lang) => {
if (!isDevEnv) {
writeLog('got kernel port [' + kernelPort + ']')
} else {
const getAvailablePort = (port) => {
if (!port) {
port = 6806
}
const getAvailablePort = () => {
// https://gist.github.com/mikeal/1840641
return new Promise((resolve, reject) => {
let tryGetPortCount = 0
return new Promise((portResolve, portReject) => {
const server = net.createServer()
server.on('error', error => {
writeLog(error)
if (2048 < ++tryGetPortCount) {
writeLog(
`failed to get available port [tryCount=${tryGetPortCount}, port=${port}]`)
reject()
return
}
console.log("getAvailablePort error", port)
server.listen(++port, "127.0.0.1")
}).on('listening', () => {
console.log("getAvailablePort listening", port)
server.close(() => resolve(port))
}).listen(port, "127.0.0.1")
console.log("getAvailablePort", port)
kernelPort = ""
portReject()
})
server.listen(0, () => {
kernelPort = server.address().port
server.close(() => portResolve(kernelPort))
});
})
}
console.log("before", kernelPort)
kernelPort = await getAvailablePort(kernelPort)
console.log("after", kernelPort)
await getAvailablePort()
}
writeLog('got kernel port [' + kernelPort + ']')
if (!kernelPort) {