- Use Client's sync queue for Subscription operations (previously each Subscription had its own sync queue). Fixes #24
- Fix
already subscribed
errors (code 105) on resubscribe after Subscription removing. Fixes #49
Update to work with Centrifuge >= v0.18.0 and Centrifugo v3.
Breaking change in server behavior. Client History API behavior changed in Centrifuge >= v0.18.0 and Centrifugo >= v3.0.0. When using history call it won't return all publications in a stream by default. See Centrifuge v0.18.0 release notes or Centrifugo v3 migration guide for more information and workaround on server-side.
- Protocol definitions updated to the latest version
- History method now accepts optional
limit
,since
andreverse
arguments and returnsCentrifugeHistoryResult
- presence now returns
CentrifugePresenceResult
- presenceStats now returns
CentrifugePresenceStatsResult
- Publish now returns
CentrifugePublishResult
- When working with Centrifugo v3 or Centrifuge >= v0.18.0 it's now possible to avoid using
?format=protobuf
in connection URL. Client will negotiate Protobuf protocol with a server using WebSocket subprotocol mechanism (in request headers).
- Fix internal error handling in subscription reply – now properly reconnect upon internal error received.
- Message recovery support for client-side subscriptions. See #39. Thanks to Anton Selyanin.
- Add initial WebSocket reconnection delay (mitigating issues with Starscream connect timeout). Thanks to Anton Selyanin.
- Fix refresh token task retain cycle #38
A couple of new methods added to Client.
Client.getSubscription(channel: String) -> CentrifugeSubscription?
to get Subscription from internal client registryClient.removeSubscription(_ sub: CentrifugeSubscription)
to tell Client that Subscription should be removed from internal registry. Subscription will be automatically unsubscribed before removing.
See more details in pull request #36. In short, subscription removing can be helpful if you work with lots of short-living subscriptions to different channels to prevent unlimited internal Subscription registry growth.
- Update client.proto file. Update sendRPC method - #33, thanks @hitman1711
- Public fields for
CentrifugePublication
,CentrifugeClientInfo
,CentrifugePresenceStats
- reduce access for private functions (#20)
- rewrite code to escape await logic (#23)
- Feature/subscription weak reference (#25)
- Mark
refresh
andprivate sub
completion blocks as escaping - Fix Starscream dependency to compatible version
- fix client deinit (#10)
- fix unlock issue (#11)
- add SPM product (library) and update dependencies (#15)
- refactor library layout
- fix extensions and subscription channel property access levels.
- Travis CI setup
Initial library release.