send method

  1. @override
Future<ByteData?>? send(
  1. String channel,
  2. ByteData? message
)
override

Send a binary message to the platform plugins on the given channel.

Returns a Future which completes to the received response, undecoded, in binary form.

Implementation

@override
Future<ByteData?>? send(String channel, ByteData? message) {
  final Future<ByteData?>? resultFuture;
  final MessageHandler? handler = _outboundHandlers[channel];
  if (handler != null) {
    resultFuture = handler(message);
  } else {
    resultFuture =
        mockBinding._superDefaultBinaryMessenger.send(channel, message);
  }
  if (resultFuture != null) {
    _pendingMessages.add(resultFuture);
    resultFuture.catchError((Object error) {
      /* errors are the responsibility of the caller */
    }).whenComplete(() => _pendingMessages.remove(resultFuture));
  }
  return resultFuture;
}