diff --git a/assets/js/app.ts b/assets/js/app.ts index c07aaebd..6db33162 100644 --- a/assets/js/app.ts +++ b/assets/js/app.ts @@ -1205,7 +1205,7 @@ const StatusTitle = { } const liveSocket = new LiveSocket("/live", Socket, { - longPollFallbackMs: 2500, + longPollFallbackMs: 5000, params: { _csrf_token: csrfToken, timezone: userTimezone }, hooks: { ...colocatedHooks, SensorChart, CopyToClipboard, ScrollToTop, AutoDismissFlash, BetaBannerDismiss, NetworkMap, SitesMap, LeafletMap, DeviceListReorder, MikrotikPortSync, GlobalSearch, GlobalSearchTrigger, DynamicFavicon, StatusTitle }, }) @@ -1266,6 +1266,15 @@ window.addEventListener("phx:download", (event: any) => { window.URL.revokeObjectURL(url) }) +// Reconnect WebSocket when returning from background (iOS Safari optimization) +document.addEventListener("visibilitychange", () => { + if (document.visibilityState === "visible") { + if (liveSocket.socket.connectionState() !== "open") { + liveSocket.socket.disconnect(() => liveSocket.socket.connect()) + } + } +}) + // connect if there are any LiveViews on the page liveSocket.connect()