我正在开发一个 iOS 应用程序,它作为业务服务器的瘦客户端。有很多请求发送到服务器,下载了很多数据。
我不使用任何花哨的请求框架,只是NSURLConnection
与委托异步。
该应用程序通常适用于 wifi 和 3G但
一些用户在使用 3G(在美国)时报告随机断开连接。所有请求都正常,但有时请求会因“无法连接到主机”(-1004)错误而失败。
这对用户体验影响很大。
一些事实:
- 在wifi上不会发生
- 用户报告说使用 3G 时其他应用程序不会发生这种情况。
- 这不是超时问题,启动连接后 0.3-1.0 秒出现错误。
- 我们无法使用 traceroute 重现该问题。
- 使用
SCNetworkReachability
主机似乎是可以访问的(我知道这个 API 的局限性)。
问题 问题的原因可能是什么?3G 和 wifi 的连接属性有哪些不同?我该如何调试它?
目前我看到的唯一解决方案是如果前一个请求失败,则尝试再次发送请求。但是,我想先找到问题的原因。
编辑问题可能是由我们的路由器之一引起的。IT 人员仍在检查问题。