interceptBidirectionalStream<TRequest, TResponse> method

  1. @override
FutureOr<Stream<TResponse>> interceptBidirectionalStream<TRequest, TResponse>(
  1. RpcCallInfo call,
  2. Stream<TRequest> requests,
  3. RpcBidirectionalStreamNext<TRequest, TResponse> next
)
override

Bidirectional-stream call interceptor.

Implementation

@override
FutureOr<Stream<TResponse>> interceptBidirectionalStream<TRequest, TResponse>(
  RpcCallInfo call,
  Stream<TRequest> requests,
  RpcBidirectionalStreamNext<TRequest, TResponse> next,
) async {
  // Same as client-stream. A bidi SUBSCRIPTION is the case this exists for:
  // zero request messages, responses pushed by the server, so per-message
  // metering alone charged nothing at all for the call.
  _check(call);
  return next(
    call.context,
    _meterStream(call, requests, firstIsPrepaid: true),
  );
}