All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project follows Semantic Versioning.
- Added optional
:headers_fnconnection option for dynamic websocket upgrade header refresh on each connect/reconnect attempt. - Added HexDocs guide for auth-header refresh and handshake-failure behavior.
OffBroadwayWebSocket.Client.connect_once/1now resolves headers through:headers_fnwhen configured and returns typed errors for invalid callback results.- Handshake failures with
:gun_responsein both:nofinand:finvariants now stop deterministically with{:handshake_failure, {status, headers}}.
- Added coverage for
headers_fnsuccess/error paths and:finhandshake-failure handling.
- Added
:on_upgradeto send outbound websocket frames immediately after upgrade and before the connection is considered ready. - Added
:frame_handlerand:frame_handler_statefor session-aware inbound websocket protocols. - Added reconnect-time reset of connection-local frame-handler state.
- Added HexDocs guide structure for configuration, bootstrap hooks, frame handlers, retry/liveness, and telemetry.
- Treat immediate
on_upgradecallback failures and immediate:gun.ws_send/3failures as bootstrap failures that follow reconnect/backoff. - Allow skipped inbound frames to refresh liveness when using a
:frame_handler. - Delay connection-success telemetry and ready-state transition until bootstrap frames have been sent successfully.
- Expanded producer and state coverage for bootstrap success/failure, frame-handler emit/skip/error paths, and reconnect state reset.
- Released the current
1.1.xline after the signal-handling improvements from1.1.0.
- Added a dedicated telemetry module and expanded connection telemetry coverage.
- Added handling for missing
:gun_wssignal clauses.
- Improved connection defaults and state enforcement.
- Refactored producer and state handling around websocket lifecycle and retry behavior.
- Improved project documentation.
- Released the
1.0.xline before the later signal-handling and telemetry refactor work.