mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-07-14 16:01:13 +03:00
fix duplicate websocket messages from zombie connection under react strict mode
detach ws event handlers before close() in WsProvider cleanup so a CONNECTING socket's deferred onclose can't schedule a reconnect after the next mount resets the unmounted guard, which was spawning a second live ws and duplicating every message
This commit is contained in:
parent
1813ce6270
commit
d8905e0dfa
@ -56,7 +56,14 @@ export function WsProvider({ children }: { children: ReactNode }) {
|
|||||||
if (reconnectTimer.current) {
|
if (reconnectTimer.current) {
|
||||||
clearTimeout(reconnectTimer.current);
|
clearTimeout(reconnectTimer.current);
|
||||||
}
|
}
|
||||||
wsRef.current?.close();
|
const ws = wsRef.current;
|
||||||
|
if (ws) {
|
||||||
|
ws.onopen = null;
|
||||||
|
ws.onmessage = null;
|
||||||
|
ws.onclose = null;
|
||||||
|
ws.onerror = null;
|
||||||
|
ws.close();
|
||||||
|
}
|
||||||
resetWsStore();
|
resetWsStore();
|
||||||
};
|
};
|
||||||
}, [wsUrl]);
|
}, [wsUrl]);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user