discoverServices method

Future<void> discoverServices(
  1. String serviceType
)

Start network service discovery for serviceType for an infinite amount of time (or until the app process is killed). Make sure to call stopDiscovery when you're done.

Implementation

Future<void> discoverServices(String serviceType) async {
  await _channel.invokeMethod('startDiscovery', {'serviceType': serviceType});

  _channel.setMethodCallHandler((MethodCall call) async {
    switch (call.method) {
      case 'onStartDiscoveryFailed':
        _streamController.addError(NsdError(
          errorCode: NsdErrorCode.startDiscoveryFailed,
        ));
        break;
      case 'onStopDiscoveryFailed':
        _streamController.addError(NsdError(
          errorCode: NsdErrorCode.stopDiscoveryFailed,
        ));
        break;
      case 'onResolveFailed':
        _streamController.addError(NsdError(
          errorCode: NsdErrorCode.onResolveFailed,
        ));
        break;
      case 'onDiscoveryStopped':
        _streamController.addError(NsdError(
          errorCode: NsdErrorCode.discoveryStopped,
        ));
        _channel.setMethodCallHandler(null);
        break;
      case 'onServiceResolved':
        final nsdServiceInfo = _parseArgs(call);
        _streamController.add(nsdServiceInfo);
        break;
      case 'onServiceLost':
      // TODO issue #28
        break;
      default:
        throw MissingPluginException();
    }
  });
}