Centrifuge Dart Versions Save

Dart (Flutter) client SDK for bidirectional communication with Centrifugo and Centrifuge-based server over WebSocket


4 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/centrifugal/centrifuge-dart/compare/v0.9.2...v0.9.3


8 months ago
  • Fix null check for close reason, fixes #66
  • Close subscription streams on remove #67


10 months ago
  • Fix setting initial connection token #63
  • Fix setting connection data #63
  • Fix LateInitializationError if transport is not initialized yet #64
  • Better string representation of UnsubscribedEvent #64


10 months ago

Breaking changes

This release adopts a new iteration of Centrifugal protocol and a new iteration of API. Client now behaves according to the client SDK API specification. The work has been done according to Centrifugo v4 roadmap.

Check out Centrifugo v4 release post that covers the reasoning behind changes.

All the current core features of Centrifugal client protocol are now supported here.

New release only works with Centrifugo >= v4.0.0 and Centrifuge >= 0.25.0. See Centrifugo v4 migration guide for details about the changes in the ecosystem.

Note, that Centrifugo v4 supports clients working over the previous protocol iteration, so you can update Centrifugo to v4 without any changes on the client side (but you need to turn on use_client_protocol_v1_by_default option in the configuration of Centrifugo, see Centrifugo v4 migration guide for details).


1 year ago

Version 0.8.0 is the next iteration of centrifuge-dart development. It pushes client closer to other clients in the ecosystem. It also contains several backwards incompatible changes.

  • Return Futures from Client.connect, Client.disconnect, Subscription.subscribe, Subscription.unsubscribe methods - addresses #31.
  • On initial connect fire DisconnectEvent on connection error - this makes behavior of centrifuge-dart similar to all other our clients - addresses #56.
  • Add client error stream to consume ErrorEvent - each transport failure will emit error to this stream - addresses #56.
  • Refactor subscription statuses - add subscribing and error statuses. This change is mostly internal should not affect working with Subscriptions.
  • Do not call UnsubscribeEvent if subscription is not successfully subscribed (i.e. in subscribed state). This makes behavior of centrifuge-dart similar to all other our clients.
  • Update disconnect reasons due to failed connection and calling Client.Disconnect method - make it more similar to all other connector libraries in ecosystem.
  • Add default transport timeout (10 sec) – on connect and subscribe timeouts client will auto reconnect, calls like publish, history, rpc can now throw TimeoutException. Also - properly pass timeout to the transport (was not before!). Again – this makes client behave similarly to all other connectors.
  • Add presence and presenceStats methods for Subscription and on client top level (for server-side subscriptions).
  • Support streamPosition in SubscribeSuccessEvent.
  • Support streamPosition in ServerSubscribeEvent.
  • Support data in ServerSubscribeEvent.
  • Implement send method to send async messages to a server.
  • Fix deletion during iteration over map when working with server-side subscriptions.
  • Better event String representations.
  • Improvements and fixes in examples.


1 year ago
  • Add support for data in SubscribeSuccessEvent. This is a custom data which can be sent by a server towards client connection in subscribe result. Note that due to the bug in Centrifugo server this feature only works in Centrifugo >= v3.0.3.


1 year ago

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 and reverse arguments and returns HistoryResult
  • RPC call now requires method name as first argument (you can pass empty string to mimic previous behavior)
  • Publish now returns PublishResult
  • 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).


1 year ago

Null safety migration

  • library dependencies updated to null safe versions
  • library code updated to support null safety in places where required

See issue #47 and pull request #48 for details.


2 years ago
  • Skip handling for events from server-side subscriptions resulted in null pointer dereference


3 years ago