panrouter 6.2.1 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/pool-worker.mjs +33 -14
package/package.json
CHANGED
package/pool-worker.mjs
CHANGED
|
@@ -256,11 +256,7 @@ async function doRestart() {
|
|
|
256
256
|
clearTimeout(reconnectTimer);
|
|
257
257
|
reconnectTimer = null;
|
|
258
258
|
}
|
|
259
|
-
|
|
260
|
-
if (!serverOk) {
|
|
261
|
-
log("代理服务重启失败", "ERR");
|
|
262
|
-
process.exit(1);
|
|
263
|
-
}
|
|
259
|
+
await ensureServer();
|
|
264
260
|
reconnectDelay = WS_RECONNECT_BASE;
|
|
265
261
|
writePid();
|
|
266
262
|
connectToHub();
|
|
@@ -403,7 +399,7 @@ function isPortOpen(port) {
|
|
|
403
399
|
|
|
404
400
|
// ─── 后台确保 9router 在运行(不阻塞注册)───────────────────────────────
|
|
405
401
|
|
|
406
|
-
let _serverReady = false;
|
|
402
|
+
let _serverReady = false;
|
|
407
403
|
|
|
408
404
|
function isServerReady() { return _serverReady; }
|
|
409
405
|
|
|
@@ -414,19 +410,42 @@ async function ensureServer() {
|
|
|
414
410
|
return;
|
|
415
411
|
}
|
|
416
412
|
|
|
417
|
-
// 跑你的完整脚本(检查→安装→注入DB→启动,全部包了)
|
|
418
413
|
const setupScript = path.join(__dirname, "setup-9router.cjs");
|
|
419
|
-
if (fs.existsSync(setupScript)) {
|
|
420
|
-
log("
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
414
|
+
if (!fs.existsSync(setupScript)) {
|
|
415
|
+
log("找不到 setup-9router.cjs,直接尝试启动 9router", "WARN");
|
|
416
|
+
trySpawn9router();
|
|
417
|
+
poll9router();
|
|
418
|
+
return;
|
|
424
419
|
}
|
|
425
420
|
|
|
426
|
-
//
|
|
421
|
+
// 第一步:跑你的脚本(安装+注入数据库)
|
|
422
|
+
log("正在执行 9router 安装与数据库配置...");
|
|
423
|
+
const child = spawn(process.execPath, [setupScript], {
|
|
424
|
+
cwd: __dirname, stdio: "ignore", detached: true,
|
|
425
|
+
});
|
|
426
|
+
child.unref();
|
|
427
|
+
|
|
428
|
+
// 第二步:脚本退出后直接 spawn 9router(静默不弹窗)
|
|
429
|
+
child.on("exit", () => {
|
|
430
|
+
log("部署脚本完成,正在启动 9router...");
|
|
431
|
+
trySpawn9router();
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
// 第三步:后台轮询端口
|
|
427
435
|
poll9router();
|
|
428
436
|
}
|
|
429
437
|
|
|
438
|
+
function trySpawn9router() {
|
|
439
|
+
try {
|
|
440
|
+
const r = spawn("9router", [], {
|
|
441
|
+
detached: true, windowsHide: true, stdio: "ignore",
|
|
442
|
+
});
|
|
443
|
+
r.unref();
|
|
444
|
+
} catch (e) {
|
|
445
|
+
log(`启动 9router 失败: ${e.message}`, "ERR");
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
430
449
|
async function poll9router() {
|
|
431
450
|
for (let i = 0; ; i++) {
|
|
432
451
|
if (await isPortOpen(SERVER_PORT)) {
|
|
@@ -435,7 +454,7 @@ async function poll9router() {
|
|
|
435
454
|
return;
|
|
436
455
|
}
|
|
437
456
|
if (i < 60) await new Promise((r) => setTimeout(r, 1000));
|
|
438
|
-
else await new Promise((r) => setTimeout(r, 5000));
|
|
457
|
+
else await new Promise((r) => setTimeout(r, 5000));
|
|
439
458
|
}
|
|
440
459
|
}
|
|
441
460
|
|