Websocket client for Centrifugo server and Centrifuge library.
There is no v1 release of this library yet – API still evolves. At the moment patch version updates only contain backwards compatible changes, minor version updates can have backwards incompatible API changes.
Check out client SDK API specification to learn how this SDK behaves. It's recommended to read that before starting to work with this SDK as the spec covers common SDK behavior - describes client and subscription state transitions, main options and methods. Also check out examples folder.
The features implemented by this SDK can be found in SDK feature matrix.
Note that custom WebSocket connection Upgrade headers can only be set on platforms that support dart:io
. So notably custom headers set in the configuration of Client
are ignored on the web platform.
The latest
centrifuge-dart
is compatible with Centrifugo server v5 and v4 and Centrifuge >= 0.25.0. For Centrifugo v2, Centrifugo v3 and Centrifuge < 0.25.0 you should usecentrifuge-dart
v0.8.0.
Examples
example\flutter_app
simple chat applicationexample\chat_app
one more chat exampleexample\console
simple console application
Usage in background
When a mobile application goes to the background there are OS-specific limitations for established persistent connections - which can be silently closed shortly. Thus in most cases you need to disconnect from a server when app moves to the background and connect again when app goes to the foreground.
Instructions for maintainers/contributors
How to update protobuf definitions
- Install
protoc
compiler - Install
protoc_plugin
https://pub.dev/packages/protoc_plugin (dart pub global activate protoc_plugin
) - cd
lib/src/proto
and runprotoc --dart_out=. -I . client.proto
- cd to root and run
dartfmt -w lib/ test/
(install dartfmt withdart pub global activate dart_style
)
How to release
- Update changelog
- Bump version in
pubspec.yaml
, push, create new tag dart pub publish
Author
German Saprykin, saprykin.h@gmail.com