centrifuge 0.3.0 copy "centrifuge: ^0.3.0" to clipboard
centrifuge: ^0.3.0 copied to clipboard

outdated

Dart client to communicate with Centrifuge and Centrifugo from Flutter and VM over dart:io WebSocket

Build Status Coverage Status

Example #

Examples:

  • example\flutter_app simple chat application
  • example\console simple console application

Usage #

Create client:

import 'package:centrifuge/centrifuge.dart' as centrifuge;

final client = centrifuge.createClient("ws://localhost:8000/connection/websocket?format=protobuf");

Note that ?format=protobuf is required because this library only works with Protobuf protocol.

Connect to server:

client.connect();

Subscribe to channel:

final subscription = client.getSubscription(channel);

subscription.publishStream.listen(onEvent);
subscription.joinStream.listen(onEvent);  
subscription.leaveStream.listen(onEvent);
subscription.subscribeSuccessStream.listen(onEvent);
subscription.subscribeErrorStream.listen(onEvent);
subscription.unsubscribeStream.listen(onEvent);

subscription.subscribe();

Publish:

final output = jsonEncode({'input': message});
final data = utf8.encode(output);
await subscription.publish(data);

Feature matrix #

  • ❌ connect to server using JSON protocol format
  • ✅ connect to server using Protobuf protocol format
  • ✅ connect with JWT
  • ✅ connect with custom header
  • ✅ automatic reconnect in case of errors, network problems etc
  • ✅ exponential backoff for reconnect
  • ✅ connect and disconnect events
  • ✅ handle disconnect reason
  • ✅ subscribe on channel and handle asynchronous Publications
  • ✅ handle Join and Leave messages
  • ✅ handle Unsubscribe notifications
  • ❌ reconnect on subscribe timeout
  • ✅ publish method of Subscription
  • ✅ unsubscribe method of Subscription
  • ❌ presence method of Subscription
  • ❌ presence stats method of Subscription
  • ✅ history method of Subscription
  • ❌ send asynchronous messages to server
  • ✅ handle asynchronous messages from server
  • ✅ send RPC commands
  • ✅ publish to channel without being subscribed
  • ✅ subscribe to private channels with JWT
  • ❌ connection JWT refresh
  • ❌ private channel subscription JWT refresh
  • ❌ handle connection expired error
  • ❌ handle subscription expired error
  • ✅ ping/pong to find broken connection
  • ❌ message recovery mechanism

Author #

German Saprykin, saprykin.h@gmail.com

44
likes
0
pub points
92%
popularity

Publisher

unverified uploader

Dart client to communicate with Centrifuge and Centrifugo from Flutter and VM over dart:io WebSocket

Repository
View/report issues

License

unknown (license)

Dependencies

meta, protobuf

More

Packages that depend on centrifuge