suave icon indicating copy to clipboard operation
suave copied to clipboard

EventSource: how to know the client disconnected?

Open katatunix opened this issue 4 years ago • 2 comments

In the module [EventSource] (https://suave.io/Suave.html#def:module%20Suave.EventSource) I don't see any function to detect the client is disconnected.

My use case is: the server side (using Suave of course) observes data from an external source, then forward those data to the client side. But it should stop that observation, and finish the socket computation, as soon as the client disconnected.

That would be nice if there is an Async<unit> which will be done when the client disconnected.

How to achieve that?

katatunix avatar Jan 07 '21 12:01 katatunix

The only way to know if the client is connected is by polling the socket or trying to read or write to it which would raise a connection reset exception.

I think you would need to bake such a thing into your handler.

ademar avatar Jan 08 '21 16:01 ademar

Also related #321

ademar avatar Jan 08 '21 18:01 ademar