Skip to content

Commit 9edc8b4

Browse files
masenfbhatia2akshit
authored andcommitted
disconnect socket when unloading (reflex-dev#4953)
1 parent 13af7a8 commit 9edc8b4

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

reflex/.templates/web/utils/state.js

+11
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,13 @@ export const connect = async (
451451
}
452452
}
453453

454+
const disconnectTrigger = (event) => {
455+
if (socket.current?.connected) {
456+
console.log("Disconnect websocket on unload");
457+
socket.current.disconnect();
458+
}
459+
}
460+
454461
const pagehideHandler = (event) => {
455462
if (event.persisted && socket.current?.connected) {
456463
console.log("Disconnect backend before bfcache on navigation");
@@ -462,6 +469,8 @@ export const connect = async (
462469
socket.current.on("connect", () => {
463470
setConnectErrors([]);
464471
window.addEventListener("pagehide", pagehideHandler);
472+
window.addEventListener("beforeunload", disconnectTrigger);
473+
window.addEventListener("unload", disconnectTrigger);
465474
});
466475

467476
socket.current.on("connect_error", (error) => {
@@ -471,6 +480,8 @@ export const connect = async (
471480
// When the socket disconnects reset the event_processing flag
472481
socket.current.on("disconnect", () => {
473482
event_processing = false;
483+
window.removeEventListener("unload", disconnectTrigger);
484+
window.removeEventListener("beforeunload", disconnectTrigger);
474485
window.removeEventListener("pagehide", pagehideHandler);
475486
});
476487

0 commit comments

Comments
 (0)