尝试修复浏览器网关断开问题

This commit is contained in:
WJZ_P
2026-03-14 01:01:08 +08:00
parent 27565c0314
commit b9aea31280
3 changed files with 37 additions and 24 deletions

View File

@@ -81,25 +81,15 @@
return {status:'idle',label,disabled};
}
function waitForComplete(timeout,interval){
timeout=timeout||120000;
interval=interval||2000;
return new Promise(function(resolve){
var elapsed=0;
var timer=setInterval(function(){
elapsed+=interval;
var s=getStatus();
if(s.status!=='loading'){
clearInterval(timer);
resolve({ok:true,status:s.status,elapsed});
return;
}
if(elapsed>=timeout){
clearInterval(timer);
resolve({ok:false,status:'timeout',elapsed});
}
},interval);
});
/* ── 保活式轮询 ──
* 不在页面内做长 Promise 等待(会导致 CDP 连接因长时间无消息被网关判定空闲断开)。
* 改为:调用端每 8-10s evaluate 一次 GeminiOps.pollStatus(),立即拿到结果。
* 调用端自行累计耗时并判断超时。
*/
function pollStatus(){
var s=getStatus();
// 顺便返回页面可见性,帮助调用端判断 tab 是否还活着
return {status:s.status, label:s.label, pageVisible:!document.hidden, ts:Date.now()};
}
function probe(){
@@ -113,5 +103,5 @@
};
}
window.GeminiOps = {probe, click, fillPrompt, getStatus, waitForComplete, selectors:S, version:'0.3.0'};
window.GeminiOps = {probe, click, fillPrompt, getStatus, pollStatus, selectors:S, version:'0.4.0'};
})();