addrStream method

Future<Stream<MultiAddr>> addrStream(
  1. PeerId p,
  2. List<MultiAddr> initial
)

Implementation

Future<Stream<MultiAddr>> addrStream(PeerId p, List<MultiAddr> initial) async {
  final sub = AddrSub();

  await _lock.synchronized( () async {
    final peerKey = p.toString();
    if (!_subs.containsKey(peerKey)) {
      _subs[peerKey] = <AddrSub>[];
    }
    _subs[peerKey]!.add(sub);
  });

  // Send initial addresses
  for (final addr in initial) {
    sub.pubAddr(addr);
  }

  return sub.stream;
}