网络活动指示器和异步套接字

时间:2013-02-13 12:05:25

标签: objective-c sockets networking nonblocking

我有一个应用程序,它不断从服务器连接读取状态更新。

一切都适用于流委托,以异步处理所有的读写操作。

应用程序的任何部分都没有“等待”来自服务器的特定响应,它只是持续处理状态更新,因为它们偶尔会从套接字到达。客户端没有等待响应的请求。

我想知道在这种情况下网络活动指标的最佳做法是什么。

我可以在流事件处理程序中打开它,然后在我们离开处理程序之前关闭它,但这将是一个非常短的时间(刚好足以进行非阻塞读取或写入)。试着这个,我只看到指示灯最微弱的闪烁;它需要比事件处理程序更长时间。

如何在流委托中打开它,并设置计时器以在短时间内关闭它? (这将确保它足够长,以便在流代表中花费很短的时间。)

注意:我已经尝试过最后一个想法:每当有流活动时打开网络活动指示器,并注意NSDate;然后在一个计时器(我每1秒开一次),如果传递的时间是> .5秒,我关闭指示器。这似乎给出了网络活动的合理指示。

有更好的建议吗?

1 个答案:

答案 0 :(得分:0)

如果网络活动是连续的,那么听起来对用户来说可能有些烦人,特别是如果它一直打开和关闭。

或许更好的方法是测试缺少响应达到某个超时值,然后如果没有从服务器获得任何响应,则向用户显示警报视图。如果您可以向用户提供反馈(例如“上次更新:5分钟前”),那么即使这样也可以是可选的。