All notable changes to this project will be documented in this file. The format is based on Keep a Changelog
This product uses Semantic Versioning.
- Fixed HeartbeatTimer to add thread safety and fix crash reported in #188
- Updated Presence.Options init method to be public
- Updated URLSessionWebsocketTask init method to accept a custom configuration
- Restructured project
- Added support for URLSession's Websocket Task
- Split Starscream and RxSwift into optional modules
- Fixed Cartfile declaration of Starscream
- Added
HeartbeatTimer
class which allows running Timers to run on their own thread - Made
Socket
init public to allow customization of the transport methhod
- Pinned back Starscream version to fix Carthage build issue
- #153: Added ability to pass a closure when initializing a
Socket
to dynamically changeparams
when reconnecting - Fixed Package.swift and updated it to use latest Starscream
- #151: Made isJoined, isJoining, etc methods on Channel public
- #141: tvOS support
- #145: Refactored Socket reconnect strategy
- #146: Refactored Channel rejoin strategy
- Swift 5
- Fixed issue with Carthage installs
- Rewrite of large parts of the Socket and Channel classes
- Optional API for automatic retain cycle handling
- Presence support
- #119: A working implementation of Presence
- #120: Xcode 10 and Swift 4.2
- #111: Strong memory cycles between Socket, Channel and Timers
- #112: Leak when Socket disconnects and properly call
onClose()
- #114: Carthage failing on builds and app store uploads
- #116: A Channel's
topic
is now exposed aspublic
- Added security configuration to the underlying WebSocket.
Continue to improve the API and behavior of the library to behave similar to the JS library. This release introduces some breaking changes in the API that will require updates to your code. See the [usage guide] for help.
- Swift 4.1
- All callbacks now receive a
Message
object. ThePayload
can be accessed usingmessage.payload
channel.join()
can now take optional params to override the ones set while creating the Channel- Timeouts when sending messages
- Rejoin timer which can be configured to attempt to rejoin given a function. Defaults to 1s, 2s, 5s, 10s and then retries every 10s
- Socket and Channel
on
callbacks are able to hold more than just a single callback
Thanks to @murphb52 and @ALucasVanDongen for helping with some of the development and testing of this release!
- Initial params are not sent through when opening a channel
- Starscream to 3.0.4
- Swift 4
- Mirror Phoenix.js more closely