proxyStateStream property

  1. @override
Stream<ProxyState> get proxyStateStream
override

A stream of proxy state updates.

Implementation

@override
Stream<ProxyState> get proxyStateStream {
  _proxyStateStream ??= _eventChannelProxyState.receiveBroadcastStream().transform(
    StreamTransformer<dynamic, ProxyState>.fromHandlers(
      handleData: (data, sink) {
        debugPrint('proxyStateStream handleData: $data');
        sink.add(ProxyState.fromName(data.toString()));
      },
      handleError: (error, stackTrace, sink) {
        debugPrint('proxyStateStream handleError: $error');
        // Android 原生侧异常停止经 EventSink.error(code: "Stopped", message: 错误信息) 下发,
        // PlatformException.message 即错误原因;其他错误兜底用 toString。
        final message = error is PlatformException ? error.message : null;
        sink.add(ProxyStopped(errMessage: message ?? error.toString()));
      },
    ),
  );
  return _proxyStateStream!;
}