connect method
Establishes the connection to the backend.
Implementation
@override
Future<void> connect() async {
_setStatus(ChannelStatus.connecting);
// Monitor Firebase's own connectivity indicator.
final connectedRef = _db.ref('.info/connected');
_connectedSub = connectedRef.onValue.listen((event) {
final connected = event.snapshot.value as bool? ?? false;
if (connected) {
_setStatus(ChannelStatus.connected);
} else if (_currentStatus != ChannelStatus.disconnecting &&
_currentStatus != ChannelStatus.disconnected) {
_setStatus(ChannelStatus.reconnecting);
}
});
// Subscribe to new messages.
final messagesRef = _db.ref(_path).limitToLast(_maxMessages);
_childSub = messagesRef.onChildAdded.listen(
_handleChildAdded,
onError: _handleError,
);
}