iOS应用程序从服务器实时更新:Socket(使用流)或Apple Push Notification服务?

我试图制作一个iOS 5应用程序,它具有来自服务器的实时性.它只会在应用程序运行时使用这些.

为了实时进行投票,我一直在评估两条设计路线:

从应用程序创建一个套接字到服务器,并通过流交换信息.

>优点:相对简单,不涉及第三方.
缺点:电池寿命消耗.
>有关如何运行的概述,请检查
出来这个优秀的教程:
http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server

使用标准HTTP与服务器进行通信,并通过应用程序的每个请求让服务器知道他们正在查看什么.如果有新功能可供用户使用,请发送Apple Push Notification(无明显警报),让应用知道可以下载新的东西.

>优点:不开放新的TCP连接,因此电池寿命不必要地耗尽.
缺点:感觉像一个糟糕的黑客.
> APN http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html的正式文件


我认为一个套接字将是要走的路,但在我承诺之前,我想要第二个意见,因为这是我第一次做这样的事情!

解决方法

真的需要“全面实时”吗?从我的角度来看,我更喜欢http,因为它已经很好地集成到了iOS SDK中.它在网络上易于理解,维护和实施以及大量文档.所以也许一分钟左右的http调查就足够了(取决于应用程序和用户数量).请考虑防火墙!由于提供商或本地wifi的防火墙策略,未知端口的流量可能会被拒绝.所以如果你真的需要实时连接,我想你必须使用套接字.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...