As described in #122, the APRS-IS servers stop sending data after 48 hours, causing any connected client to stop receiving new packets.
This change adds an event that re-sends the login message every 6 hours to maintain connection and reset the 48hour timeout counter.
This resolves #122.
This uses System.Threading.Timer instead of System.Timers.Timer to allow multi-threaded use of the underlying TcpClient so that receiving is not interrupted.
Changes
Add a timer event triggering every 6 hours to message the APRS-IS server
This makes AprsIsConnection disposable, so the required changes were implemented for that as well
Validation
Build and tests pass
Ran locally with a shorter timeframe and verified that APRS-IS servers reset their timeout counter (via APRS-IS server status page) each time a message is sent
Opting not to put new unit tests on this for now to avoid adding more time-based tests
Description
As described in #122, the APRS-IS servers stop sending data after 48 hours, causing any connected client to stop receiving new packets.
This change adds an event that re-sends the login message every 6 hours to maintain connection and reset the 48hour timeout counter.
This resolves #122.
This uses
System.Threading.Timer
instead ofSystem.Timers.Timer
to allow multi-threaded use of the underlyingTcpClient
so that receiving is not interrupted.Changes
AprsIsConnection
disposable, so the required changes were implemented for that as wellValidation