IRpcMultiplexedChannel class abstract

Multiplexed message channel -- sits between a raw transport and IRpcTransport.

Converts between a transport-specific wire format and RpcTransportMessage. Stream ID management, security policy, and health checks are handled by RpcChannelTransport which wraps this interface.

Built-in implementations:

  • RpcFrameMultiplexedChannel wraps an IRpcChannel with frame encoding
  • RpcDirectMultiplexedChannel passes messages directly (zero-copy)
Implementers

Constructors

IRpcMultiplexedChannel()

Properties

discardedFrames → Stream<({int bytes, int streamId})>
The bytes of each frame the channel refused and stepped over, reported per stream as they ARRIVE, never for bytes merely announced.
no setter
hashCode → int
The hash code for this object.
no setterinherited
incoming → Stream<RpcTransportMessage>
Incoming messages from all streams, already decoded.
no setter
isClosed → bool
Whether the channel has been closed.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
supportsZeroCopy → bool
Whether the channel supports zero-copy message passing.
no setter

Methods

close() → Future<void>
Close the channel and release resources.
closeFor(RpcChannelCloseReason reason) → Future<void>
Closes the channel because the peer broke a rule, telling the peer why where the channel underneath can; see IRpcChannel.closeFor.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
send(RpcTransportMessage message) → Future<void>
Send a message to the remote side.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited