braverhealth / phoenix-socket-dart

Cross-platform and stream-based implementation of Phoenix Sockets
https://pub.dev/packages/phoenix_socket
BSD 3-Clause "New" or "Revised" License
73 stars 37 forks source link

Ensure all exceptions are retried. #71

Closed brian-superlist closed 5 months ago

brian-superlist commented 5 months ago

Fixes #70.

This PR ensures that if non-PhoenixException exceptions are raised when attempting to send the heartbeat, the socket will attempt to reconnect. This should fix one case where the socket is left in a "broken" state, where it stops scheduling reconnects and cannot be connected to manually.

As part of this PR, I also renamed any tests that were hitting a real backend as an _integration_test, since it is a true integration test against a backend, not a unit test that can rely on mocks. I can also go the other way, calling the new socket test a socket_unit_test.dart if that's preferred. I don't feel strongly, but I think it's important not to mix the two tests, as the integration tests are run on CI but harder to run locally.

matehat commented 5 months ago

Thanks! It's part of the just released 0.7.1 🚀