避免iPhone不断轮询网页

我有一个iPhone应用程序,只要对服务器进行更改就需要更新。 我怎样才能让服务器将数据“推送”到iPhone而不是iPhone不断地轮询Web服务?

编辑:我希望th iPhone尽快接收JSON更新,只要服务器处理它们,而不必请求。

我想因为服务器是一个叫做Comet的web服务,但我还没有看到一个好的iPhone例子。


这取决于你有多冒险。 这里有两种选择:

  • Apple的推送通知即使在您的应用程序未运行时也能正常工作。
  • 自己维护与服务器的TCP连接。 这需要您进行更多的编程工作 - 当iPhone决定从3G转向WiFi时,底层的NSStream玩弄并试图处理案件。 这也可以很快耗尽电池。 如果你选择这个路径,套接字流编程指南可以成为开始的好地方。
  • 更新:看看iStreamLight - iPhone的Lightstreamer协议实现。 如果它不适合您的Comet网络服务,则可能需要下到较低级别,该级别使用套接字流来维持TCP连接。 为了简化处理JSON数据结构的任务,您可能需要为Objective-C使用JSON框架。


    你需要的是某种COMET框架(比如光源)。 有几种方法可以做到这一点 - 套接字连接或HTTP服务器,它们持有你的轮询,直到有一些数据可用于交付或直到HTTP请求超时。 其他选项包括使用诸如Flash或Silverlight / Moonlight之类的插件(假设使用monotouch可以在iPhone上使用这种插件?)

    一个能以非常高效的方式移动大量数据的新的基于IIS的新COMET框架是来自Frozen Mountain的WebSync,它支持托管的基于COMET的PubSub框架(称为WebSync on Demand),可以根据您的负载进行扩展。 它通过JavaScript很好地工作,并有一个非常干净的API。


    这可能是在其他文章中提到的,但http://code.google.com/p/istreamlight/是一个检查出的好地方。 它使用lightstreamer服务器(不知道这一点)。你可以看看这是否是你想为你的应用程序实现一个彗星客户端。

    我真的希望我能更有帮助。 如果你正在寻求一种方法来做到这一点在JavaScript中,我会完全!

    祝你好运,

    -Todd

    链接地址: http://www.djcxy.com/p/12919.html

    上一篇: Avoid iPhone constant polling a web

    下一篇: HighCharts API for Deprecated Versions