Skip to content

Commit 5d1d66c

Browse files
committed
disconnect socket when unloading
1 parent 8f94d7f commit 5d1d66c

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,13 @@ export const connect = async (
441441
}
442442
}
443443

444+
const disconnectTrigger = (event) => {
445+
if (socket.current?.connected) {
446+
console.log("Disconnect websocket on unload");
447+
socket.current.disconnect();
448+
}
449+
}
450+
444451
const pagehideHandler = (event) => {
445452
if (event.persisted && socket.current?.connected) {
446453
console.log("Disconnect backend before bfcache on navigation");
@@ -452,6 +459,8 @@ export const connect = async (
452459
socket.current.on("connect", () => {
453460
setConnectErrors([]);
454461
window.addEventListener("pagehide", pagehideHandler);
462+
window.addEventListener("beforeunload", disconnectTrigger);
463+
window.addEventListener("unload", disconnectTrigger);
455464
});
456465

457466
socket.current.on("connect_error", (error) => {
@@ -461,6 +470,8 @@ export const connect = async (
461470
// When the socket disconnects reset the event_processing flag
462471
socket.current.on("disconnect", () => {
463472
event_processing = false;
473+
window.removeEventListener("unload", disconnectTrigger);
474+
window.removeEventListener("beforeunload", disconnectTrigger);
464475
window.removeEventListener("pagehide", pagehideHandler);
465476
});
466477

0 commit comments

Comments
 (0)