handle connecting ws

This commit is contained in:
Tommy D. Rossi
2026-01-01 03:12:30 +01:00
parent ef6ab59351
commit 90179dea17
2 changed files with 39 additions and 0 deletions
+15
View File
@@ -560,6 +560,21 @@ function handleConnectionClose(reason: string, code: number): void {
}
async function ensureConnection(): Promise<void> {
// If already connecting, wait for that connection to complete instead of creating a new one
// This prevents "Extension Replaced" errors when multiple callers race to connect
if (ws?.readyState === WebSocket.CONNECTING) {
logger.debug('Connection already in progress, waiting for it to complete')
const existingWs = ws
await new Promise<void>((resolve) => {
const checkInterval = setInterval(() => {
if (existingWs.readyState !== WebSocket.CONNECTING) {
clearInterval(checkInterval)
resolve()
}
}, 100)
})
}
if (ws?.readyState === WebSocket.OPEN) {
logger.debug('Connection already exists, reusing')
return