signalWithRetry method

Future<JsonMap> signalWithRetry(
  1. String op,
  2. String path,
  3. JsonMap data
)

接听、拒绝、挂断、结束:rate_limited 的等待不超过 5 秒时自动重试一次。

Implementation

Future<JsonMap> signalWithRetry(String op, String path, JsonMap data) async {
  try {
    return await signal(op, path, data);
  } on DRException catch (err) {
    if (err.code == LocalErrorCode.rateLimited && (err.retryAfter ?? 6) <= 5) {
      await sleep(core.platform.clock, (err.retryAfter ?? 1) * 1000);
      return signal(op, path, data);
    }
    rethrow;
  }
}