【发布时间】:2012-08-20 00:54:57
【问题描述】:
我已经阅读了可达性框架,但仍然很困惑为什么主机可达性的定义是“当数据包......可以离开本地设备时”。
如果可达性返回“是”,那么我似乎仍然需要尝试建立一个套接字连接,直到真正连接为止,我并不知道我的主机已经启动。为什么 Reachability 不使用 Ping 来更好地了解主机是否实际启动?这个框架首先需要什么?
我的猜测是这两个,但如果有人知道使用可达性框架的任何其他原因,请告诉我。
1) 可达性提供回调,当互联网恢复时提供即时通知。发生这种情况时,可以立即尝试套接字连接。然而,在 99% 的应用程序中,每隔几秒尝试一次套接字连接似乎是可以接受的,或者在最坏的情况下,只是在用户执行特定操作时尝试建立连接。诚然,这不是一个理想的解决方案,但我不明白为什么出于这个原因,Reachability 框架真的很有必要。
2) 即使在与服务器建立套接字连接的情况下,Reachability 也会提供有关网络是否为 G3/WiFi 的重要信息。我认为这是唯一一次真正必要的可达性,因为它允许根据网络类型优化行为。
【问题讨论】:
-
好吧 1) 它可以让大多数不太关注套接字连接(主要是 WebView)的开发人员优雅地处理缺乏 Internet 连接的问题。 2)如果你不喜欢它,就分叉并自己制作。
-
但是 WebViews 也有一种机制可以在无法访问站点时进行处理,对吗?
标签: ios networking reachability