newStream method

  1. @override
Future<P2PStream> newStream(
  1. Context context
)
override

NewStream constructs a new Stream over this conn.

Implementation

@override
Future<libp2p.P2PStream> newStream(libp2p.Context context) async {
  final quicConn = _delegate.quicConnection;
  if (quicConn is! quic_lib.QuicConnection) {
    throw StateError('Underlying QUIC connection is not a QuicConnection');
  }
  // Wait for the handshake to complete before opening a stream.
  while (!quicConn.isEstablished) {
    await Future.delayed(const Duration(milliseconds: 10));
  }
  final streamId = quicConn.openBidirectionalStream();
  return QuicP2PStream(
    this,
    streamId,
    libp2p.Direction.outbound,
    '',
  );
}