物理 iOS 设备上的 Flutter 应用中的网络请求很慢

Network requests in Flutter app on physical iOS devices are slow

我正在使用 Flutter 为 Android、iOS 和 Web 开发跨平台应用程序。但出于某种原因,iOS 上的网络请求非常慢。

该应用程序在 Android 和 Web 上运行良好。缓慢的网络请求似乎不是由于性能问题造成的; UI 工作得很快,我推断(使用秒表)延迟总是 10 秒。延迟会影响 HTTP (https://) 和 WebSocket (wss://) 请求。更令人费解的是,该应用程序在模拟器设备上运行良好。我尝试了多种物理 iOS 设备,但结果都是一样的。

对于上下文,我使用 Dart HTTP 库 (https://pub.dev/packages/http) 进行 HTTP 请求。此外,flutter --version 给出

Flutter 2.6.0-6.0.pre.5 • channel master • https://github.com/flutter/flutter.git
Framework • revision 33755f203d (8 weeks ago) • 2021-09-05 13:16:01 -0700
Engine • revision dbc97a09b4
Tools • Dart 2.15.0 (build 2.15.0-82.0.dev)

这是 Dart/Flutter 的已知问题吗?如果需要澄清,我愿意提供具体细节。

已经解决了这个问题,所以我会post一个答案,以防其他人遇到同样的问题。

原来是IPv4问题。我注意到支持 IPv6 的主机工作得很好,但我的仅使用 IPv4 的后端有这个问题。显然,已经提出了一个 Dart SDK 问题 fixed/resolved,但即使在更新我的安装后我仍然遇到问题 (https://github.com/dart-lang/sdk/issues/41451#issuecomment-1003663129)。

切换到 Cloudflare DNS 并启用 IPv6 支持解决了这个问题,尽管我认为它仍然适用于任何其他 IPv6 支持方式。