🎨 改进桌面端拉起内核 Fix https://github.com/siyuan-note/siyuan/issues/6996
This commit is contained in:
parent
ccfa53abe2
commit
88e6e1e84e
1 changed files with 10 additions and 22 deletions
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue