iOS应用程序,具有来自服务器的实时更新:套接字(使用流)或Apple推送通知服务?

Jon*_*Cox 14 iostream apple-push-notifications ios ios5

我正在尝试制作一个iOS 5应用程序,其中包含来自服务器的实时内容.它只会在应用程序运行时使用这些.

为了实现无需轮询的实时性,我一直在评估两条设计路线:


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

使用标准HTTP与服务器通信,并使用来自应用程序的每个请求让服务器知道他们正在查看的内容.如果有新功能可供用户使用,请发送Apple推送通知(没有可见警报),让应用知道它可以下载新内容.


我认为套接字是可行的方法,但在我承诺之前,我想要第二个意见,因为这是我第一次做出这样的事情!

gef*_*etz 5

套接字将是我的选择.我不知道您的应用程序的时间关键程度如何,但如果实时是必须的,套接字可能会像APN一样表现更好.


Pfi*_*itz 3

它真的需要“全实时”吗?从我的角度来看,我更喜欢 http,因为它已经很好地集成到了 iOS SDK 中。它易于理解、维护和实施,并且网络上有大量文档。因此,也许每分钟左右进行一次 http 轮询就足够了(取决于应用程序和用户数量)。也请考虑防火墙!由于提供商或本地 WiFi 的防火墙策略,流向未知端口的流量可能被拒绝。因此,如果您确实需要实时连接,我想您必须使用套接字。