discoverServices method
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();
}
});
}