developing #10
|
|
@ -77,6 +77,21 @@ export class RealtimeConnection {
|
||||||
this.resetInactivityTimer()
|
this.resetInactivityTimer()
|
||||||
this.clearConnectionTimer()
|
this.clearConnectionTimer()
|
||||||
|
|
||||||
|
// Ensure the Supabase client has a valid auth session before connecting.
|
||||||
|
// On initial page load, the session may still be loading from cookies.
|
||||||
|
try {
|
||||||
|
const { data: { session } } = await this.supabase.auth.getSession()
|
||||||
|
if (!session && !this.isDestroyed) {
|
||||||
|
// No session yet - wait briefly and retry
|
||||||
|
this.scheduleReconnect()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
// Session check failed - proceed anyway, channel will handle auth errors
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.isDestroyed || this.isPaused) return
|
||||||
|
|
||||||
// Set a timeout: if we don't connect within CONNECTION_TIMEOUT_MS, retry
|
// Set a timeout: if we don't connect within CONNECTION_TIMEOUT_MS, retry
|
||||||
this.connectionTimer = setTimeout(() => {
|
this.connectionTimer = setTimeout(() => {
|
||||||
if (this.isDestroyed || this.isPaused) return
|
if (this.isDestroyed || this.isPaused) return
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue