12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import 'package:fis_jsonrpc/rpc.dart';
- import 'package:vitalapp/architecture/utils/json_rpc_ex_interceptor.dart';
- final _host = _ProxyHost();
- /// JSON-RPC client proxy
- JsonRpcProxy get rpc => _host.getProxy();
- class _ProxyHost {
- JsonRpcProxy? _proxy;
- /// JSON-RPC client
- JsonRpcProxy getProxy() {
- if (_proxy == null) {
- _init();
- }
- return _proxy!;
- }
- /// 初始化代理
- void _init() {
- _buildProxy();
- // _listenServerHostChange();
- }
- /// 构建代理实例
- void _buildProxy() {
- final originServerHost = _proxy?.currentHostAddress;
- JsonRpcProxy jsonRpcProxy = JsonRpcProxy();
- _proxy = jsonRpcProxy;
- if (originServerHost != null && originServerHost.isNotEmpty) {
- _setRpcHost(_proxy!, originServerHost);
- }
- // _proxy!.addInterceptor(_DefaultInterceptor());
- _proxy!.addInterceptor(JsonRpcExInterceptor());
- }
- // /// 监听服务地址变更
- // void _listenServerHostChange() {
- // bus.on(bus.Keys.SERVER_ADDRESS_CHANGED, (arg) {
- // logger.i('EventBus - [${bus.Keys.SERVER_ADDRESS_CHANGED}]: $arg');
- // _setRpcHost(rpc, arg);
- // rpc.clearCache();
- // });
- // }
- static void _setRpcHost(JsonRpcProxy rpc, url) {
- final uri = Uri.parse(url);
- rpc.setServerHost("${uri.host}:${uri.port}", uri.scheme == "https");
- }
- }
- extension JsonRpcProxyExt on JsonRpcProxy {
- //
- }
|