newHolePunchService function

Future<HolePunchService> newHolePunchService(
  1. Host host,
  2. IDService ids,
  3. List<MultiAddr> listenAddrs(), {
  4. HolePunchOptions? options,
})

Creates a new holepunch service.

The Service runs on all hosts that support the DCUtR protocol, no matter if they are behind a NAT / firewall or not. The Service handles DCUtR streams (which are initiated from the node behind a NAT / Firewall once we establish a connection to them through a relay.

listenAddrs MUST only return public addresses.

Implementation

Future<HolePunchService> newHolePunchService(
  Host host,
  IDService ids,
  List<MultiAddr> Function() listenAddrs, {
  HolePunchOptions? options,
}) async {
  if (ids == null) {
    throw ArgumentError('identify service can\'t be null');
  }

  final service = HolePunchServiceImpl(host, ids, listenAddrs, options: options);
  await service.start();
  return service;
}