• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 29094096134 / 7
87%
main: 87%

Build:
DEFAULT BRANCH: main
Ran 10 Jul 2026 12:58PM UTC
Files 11
Run time 0s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Jul 2026 12:53PM UTC coverage: 89.605% (-0.005%) from 89.61%
29094096134.7

push

github

web-flow
fix(realtime_client): faster channel rejoin on web (#1471)

## What


### Faster disconnect

The previous `disconnect` first waited for the connection to get stable
by waiting for `conn.ready`. Despite the comment I added on it, I could
not find any issues by removing that wait and just close the connection
immediately. I tested this manually with the websocket channel package
by closing the connection instantaneously and with delays without
waiting for `conn.ready` on web, android and linux. This
[comment](https://github.com/dart-lang/http/issues/1693#issuecomment-2651080004)
seems to experience the same.
During testing on web, I found that by removing the wait for `ready` the
close is still not instantaneously, but can take several seconds. I
think it depends on the exact platform and state of the connection
whether this can save time or not.


### Timeout for connection close

During testing I experienced a real network issue at home, but no
reconnect was scheduled. I lost the exact logs, but when researching
other issues I came along this comment:
https://github.com/dart-lang/http/issues/1693#issuecomment-2651080004
which could be the source of the issue. The disconnect hang indefinitely
which is why no connect was scheduled. So I added a timeout to the
`conn.sink.close`. This may cause the disconnect to not wait for a
connection that would indeed close after like 10 seconds successfully,
but I don't think there is a real issue in handling this via a timeout.


### Faster Channel rejoin


In particular, I tested a Flutter web app on mobile by switching from
the browser to other apps and back. Only `inactive` and `hidden` events
are fired on web when switching to another app, which are currently not
handled by the app state handler in supabase_flutter. But those events
are also called when switching to another tab. But in the case of
switching to another tab the websocket connection is kept. When
switching to another app that is not the case and th... (continued)

1112 of 1241 relevant lines covered (89.61%)

3.89 hits per line

Source Files on job realtime_client - 29094096134.7
  • Tree
  • List 11
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 29094096134
  • bc06a310 on github
  • Prev Job for on main (#29081780486.8)
  • Next Job for on main (#29094527665.4)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc