Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/centrifugal/centrifuge-dart
Dart (Flutter) client SDK for bidirectional communication with Centrifugo and Centrifuge-based server over WebSocket
https://github.com/centrifugal/centrifuge-dart
centrifuge centrifugo dart flutter websocket
Last synced: 20 days ago
JSON representation
Dart (Flutter) client SDK for bidirectional communication with Centrifugo and Centrifuge-based server over WebSocket
- Host: GitHub
- URL: https://github.com/centrifugal/centrifuge-dart
- Owner: centrifugal
- License: mit
- Created: 2018-08-16T15:33:10.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-19T00:30:04.000Z (12 months ago)
- Last Synced: 2024-05-19T18:02:28.880Z (9 months ago)
- Topics: centrifuge, centrifugo, dart, flutter, websocket
- Language: Dart
- Homepage: https://pub.dartlang.org/packages/centrifuge
- Size: 497 KB
- Stars: 97
- Watchers: 8
- Forks: 30
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
Websocket client for [Centrifugo](https://github.com/centrifugal/centrifugo) server and [Centrifuge](https://github.com/centrifugal/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](https://centrifugal.dev/docs/transports/client_api) 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](https://centrifugal.dev/docs/transports/client_sdk#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](https://github.com/centrifugal/centrifugo) server v5 and v4 and [Centrifuge](https://github.com/centrifugal/centrifuge) >= 0.25.0. For Centrifugo v2, Centrifugo v3 and Centrifuge < 0.25.0 you should use `centrifuge-dart` v0.8.0.**
## Examples
* `example\flutter_app` simple chat application
* `example\chat_app` one more chat example
* `example\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
1) Install `protoc` compiler
2) Install `protoc_plugin` https://pub.dev/packages/protoc_plugin (`dart pub global activate protoc_plugin`)
3) cd `lib/src/proto` and run `protoc --dart_out=. -I . client.proto`
4) cd to root and run `dartfmt -w lib/ test/` (install dartfmt with `dart pub global activate dart_style`)### How to release
1) Update changelog
2) Bump version in `pubspec.yaml`, push, create new tag
3) `dart pub publish`## Author
German Saprykin, [email protected]