The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## What's Changed
* Prevent crashes caused by threading issues by @ejensen in https://github.com/davidstump/SwiftPhoenixClient/pull/252
**Full Changelog**: https://github.com/davidstump/SwiftPhoenixClient/compare/5.3.1...5.3.2
* Added `socket.headers` which will be added to the `URLRequest` when opening a WebSocket connection
* Using thread-safe array for Socket callback bindings, fixing a crash when creating a channel
* Breaking a retain cycle in socket
* Fix retain cycles in `URLSessionTransport` and using default operation queue
* Adding an optional `leeway` to the `HeartbeatTimer`
* Added additional `open` methods in `URLSessionTransport` for further customization
* Using a thread-safe array for Channel bindings
Thanks @ejensen for several of these additions
* Changed `URLSessionTransport` to `open` to provide for custom behavior, such as SSL Pinning
* Added `connectionState` to `Socket` to expose the Socket's readyState
[#226] - Adds `URLResponse` as an optional value in `socket.onError` callbacks to allow for checking status codes from the server when the Socket connection errors out. See Examples in PR for more details
**NOTE** Upgrading to this version may throw a syntax error depending on how you've implemented your `onError` handlers.
* Improved reconnect logic when a heartbeat times out
* Removed RxSwift as a dependency
* Removed Starscream as a dependency
These extensions will now be available under
RxSwift - https://github.com/dsrees/RxSwiftPhoenixClient
Starscream - Coming Soon
Updated to RxSwift 6
This is a **BREAKING** release. The following has changed to properly matched the phoenix.js library
* `message.payload.response` is now automatically unwrapped and returned as `message.payload` for `phx_reply` events.
* The client now, by default, uses the JSON V2 Serializer which was added in phoenix 1.3. If you are still running 1.2 or earlier, then you will need to continue using SwiftPhoenixClient 2.x, or provide your own custom `vsn`, `encoder` and `decoder` to the `Socket` class.