centrifuge 0.1.0 centrifuge: ^0.1.0 copied to clipboard
Dart client to communicate with Centrifuge and Centrifugo from Flutter and VM over dart:io WebSocket
Example #
Examples:
example\flutter_app
simple chat applicationexample\console
simple console application
Usage #
Create client:
import 'package:centrifuge/centrifuge.dart' as centrifuge;
final client = centrifuge.createClient(url);
Connect to server:
await client.connect();
Subscribe to channel:
final subscription = client.subscribe(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);
Subscribe to private channel:
final privateSubscription = client.subscribe(channel, token: 'token');
Publish:
final output = jsonEncode({'input': message});
final data = utf8.encode(output);
await subscription.publish(data);
Checklist: #
- connect to server using JSON protocol format
- connect to server using Protobuf protocol format
- connect with JWT
- connect with custom header
- support automatic reconnect in case of errors, network problems etc
- connect and disconnect events
- handle disconnect reason
- subscribe on channel and handle asynchronous Publications
- handle Join and Leave messages
- handle unsubscribe notifications
- handle subscribe error
- support publish, presence, presence stats and history methods
- send asynchronous messages to server
- handle asynchronous messages from server
- send RPC commands
- subscribe to private channels with JWT
- support connection JWT refresh
- support private channel subscription JWT refresh
- ping/pong to find broken connection
- support message recovery mechanism
Author #
German Saprykin, saprykin.h@gmail.com