From b7bbce737461bafdb3e79541844dda0883e65c3b Mon Sep 17 00:00:00 2001 From: Khairul Hidayat Date: Tue, 22 Sep 2026 14:21:10 +0800 Subject: [PATCH] fix: filter only authenticated socket --- src/server/main.ts | 3 ++- src/server/types.d.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/main.ts b/src/server/main.ts index 974c675..c789500 100644 --- a/src/server/main.ts +++ b/src/server/main.ts @@ -56,7 +56,7 @@ function getWhatsApp(deviceId?: string): WebSocket | null { // find the most recent active bridge const sock = [...bridgeSockets] .sort((a, b) => (b.lastSuccessfulCall || 0) - (a.lastSuccessfulCall || 0)) - .find((i) => i.readyState === WebSocket.OPEN); + .find((i) => i.readyState === WebSocket.OPEN && i.isAuthenticated); if (sock) return sock; return null; @@ -153,6 +153,7 @@ function handleWhatsAppMessage(ws: WebSocket, data: string) { console.log("[WhatsApp event]", event, data); if (event === "ready") { + ws.isAuthenticated = data.authenticated || false; ws.deviceId = data.deviceId; ws.deviceName = data.deviceName; } diff --git a/src/server/types.d.ts b/src/server/types.d.ts index 9b35886..7302882 100644 --- a/src/server/types.d.ts +++ b/src/server/types.d.ts @@ -2,6 +2,7 @@ import "ws"; declare module "ws" { interface WebSocket { + isAuthenticated?: boolean; deviceId?: string; deviceName?: string; lastAlive?: number;