我有一个iPhone应用程序需要在对服务器进行更改后立即更新。如何让服务器“推送”数据到iphone而不是iphone不断轮询网络服务?
编辑:我希望iPhone在服务器处理后立即接收JSON更新,而无需请求。
我想因为服务器是一个名为Comet的Web服务,但我还没有看到一个好的iPhone示例。
答案 0 :(得分:13)
这取决于你是多么冒险。这里有两种选择:
更新:看看iStreamLight - Lightstreamer protocol implementation for iPhone。如果它不适合您的Comet Web服务,您可能需要转到较低级别,即使用套接字流维护TCP连接。为了简化处理JSON数据结构的任务,您可能希望使用JSON framework for Objective-C。
答案 1 :(得分:3)
您需要的是某种COMET框架(例如光流)。有几种方法可以做到这一点 - 套接字连接或HTTP服务器保留在您的民意调查中,直到有一些数据可供传递或HTTP请求超时。其他选项包括使用像Flash或Silverlight / Moonlight这样的插件(假设在iphone上使用monotouch可以实现这样的功能吗?)
一个很好的新的(基于IIS的)COMET框架,可以以非常高效的方式移动大量数据,来自Frozen Mountain的WebSync,它支持托管的基于COMET的PubSub框架(称为WebSync on Demand),可以扩展以适合您的加载。它通过Javascript很好地工作,并且有一个非常干净的API。
答案 2 :(得分:1)
这可能已在其他帖子中提到,但http://code.google.com/p/istreamlight/是一个值得一看的好地方。它使用lightstreamer服务器(不知道它。)您可以查看是否要为您的应用程序实现彗星客户端。
老实说,我希望自己能提供更多帮助。如果你想在javascript中找到一种方法,我会全身心投入!
祝你好运,-Todd
答案 3 :(得分:0)
对于Web服务推送,又名Comet,您可能想要查看其他StackOverflow问题here.