glacasa / Mastonet

C# Library for Mastodon
MIT License
225 stars 36 forks source link

Gracefully handle remote WebSocket disconnections. #121

Open adderthorn opened 8 months ago

adderthorn commented 8 months ago

Adds a boolean property to the TimelineStreaming class to specify reconnection of a stream if disconnected. This is used with a new try/catch block to gracefully handle a WebSocketException and either stop the stream or attempt a reconnect.

I have been working on an application that uses this library and uses the Web Socket streaming. I found after ~2 hours my remote server would unexpectedly close the connection resulting in a crash. I've solved this myself adding this try/catch to catch the websocket exception and either gracefully close the stream or reconnect depending on a flag.

I'm open to other thoughts on how to handle this, and I'm not sure I love the property on the abstract class, but wanted to keep it simple so that, if there's a solution that works better for the project, it would be easy to change. Let me know what you think.