@@ -451,6 +451,13 @@ export const connect = async (
451
451
}
452
452
}
453
453
454
+ const disconnectTrigger = ( event ) => {
455
+ if ( socket . current ?. connected ) {
456
+ console . log ( "Disconnect websocket on unload" ) ;
457
+ socket . current . disconnect ( ) ;
458
+ }
459
+ }
460
+
454
461
const pagehideHandler = ( event ) => {
455
462
if ( event . persisted && socket . current ?. connected ) {
456
463
console . log ( "Disconnect backend before bfcache on navigation" ) ;
@@ -462,6 +469,8 @@ export const connect = async (
462
469
socket . current . on ( "connect" , ( ) => {
463
470
setConnectErrors ( [ ] ) ;
464
471
window . addEventListener ( "pagehide" , pagehideHandler ) ;
472
+ window . addEventListener ( "beforeunload" , disconnectTrigger ) ;
473
+ window . addEventListener ( "unload" , disconnectTrigger ) ;
465
474
} ) ;
466
475
467
476
socket . current . on ( "connect_error" , ( error ) => {
@@ -471,6 +480,8 @@ export const connect = async (
471
480
// When the socket disconnects reset the event_processing flag
472
481
socket . current . on ( "disconnect" , ( ) => {
473
482
event_processing = false ;
483
+ window . removeEventListener ( "unload" , disconnectTrigger ) ;
484
+ window . removeEventListener ( "beforeunload" , disconnectTrigger ) ;
474
485
window . removeEventListener ( "pagehide" , pagehideHandler ) ;
475
486
} ) ;
476
487
0 commit comments