end the stream on unsubscribe #122
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In case of an endless stream, I noticed that the listener on the page is removed after pausing a subscription but on the rust side the stream keeps going. The effect is you will only data from one subscription but on the rust side it will keep publishing events for the old subscriptions.
Example of endless stream:
I think in the case of a websocket transport the stream is ended because the client will send a 'teardown' message on unsubscribe or in case of page reload the websocket connection is closed which somehow also ends the stream at the rust side.
This pull request solves the case where client unsubscribes (urql pause). see #124
Not solved is the case where you can reload the page in a tauri app. Client will just start a new subscription and stream of old subscription alse keeps sending items.
Client was implemented with Sveltekit and @urql/svelte