sendMessage method

  1. @override
Future<DeliveryStatus> sendMessage(
  1. Message m
)
override

Sends m to the backend and returns its DeliveryStatus.

Implementation

@override
Future<DeliveryStatus> sendMessage(Message m) async {
  if (!_connected) return DeliveryStatus.fail('disconnected');
  await _delay();
  final remoteId = 'srv-${DateTime.now().microsecondsSinceEpoch}';
  final stored = m.copyWith(remoteId: remoteId, status: MessageStatus.sent);
  _store.add(stored);
  // Simulate delivery event back to sender.
  _events.add(MessageStatusChangedEvent(
    messageId: m.id,
    remoteId: remoteId,
    status: MessageStatus.sent,
  ));
  return DeliveryStatus.ok(remoteId);
}