Используя Dart Grp c, я устанавливаю тайм-аут соединения на 5 секунд. Хотя это, кажется, работает в определенной степени, начальные периоды ожидания значительно различаются. например: 30 с c, 28 с c, 64 с c. После первоначального тайм-аута (без подключения) тайм-ауты составляют 3 секунды, но первый всегда намного длиннее. Есть ли способ, которым я могу улучшить это, потому что начальное время ожидания слишком велико? Без установки тайм-аута соединение, по-видимому, никогда не прекращается. Код ниже:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:grpc/grpc.dart';
import 'protos/counter1.pb.dart';
import 'protos/counter1.pbgrpc.dart';
_fnOnBuildComplete() async {
try {
_vChannel = ClientChannel('192.168.1.5',
port: 8080,
options: const ChannelOptions(
credentials: ChannelCredentials.insecure(),
connectionTimeout: Duration(seconds: 5)));
_vChannel.getConnection().timeout(Duration(seconds: 5));
_vClient = Counter1Client(_vChannel);
_vClient..fnIncrementCounter(Counter1Request()..req1 = "0") /* INIT */;
} catch (vError) {
print("_fnOnBuildComplete: Error = $vError");
}
}
Типичная ошибка:
I/flutter (16490): _fnIncrementCounter: error = gRPC Error (14, Error connecting: SocketException: OS Error: No route to host, errno = 113, address = 192.168.1.5, port = 33823)