我正在考虑为iPhone构建一个实时聊天应用程序(但这个问题也适用于Android和其他设备)基本上,我希望该应用程序在打开和关闭时都可以接收实时消息,就像iPhone一样。自己的“消息”应用。
关闭后,我可以使用本地推送通知服务(例如APNS),当应用程序打开时,我可以运行自己的websockets服务器或使用第三方服务(例如PubNub或Pusher),这实际上是我一直在做的事情。
然后我想知道:在应用程序打开和关闭时,为什么我不能完全依靠APNS进行实时消息传递?由于它是由一台推送服务器驱动的,因此这感觉像是一种更清洁的解决方案。有人可以启发我吗?谢谢。
APNS并非100%可靠。在大多数情况下是,但不是100%。它也没有您提供的专用服务快。有时,推送消息可能需要一分钟以上的时间才能到达。您需要考虑这些因素,并在您提出的任何设计中都将其考虑在内。如果您可以忍受这些限制,那么您确实可以依靠APNS来更新您的客户端。此外,使用iOS7,应用程序可以在后台唤醒,检索数据并更新其UI,以便向用户展示最新的应用程序。
在谈到性能时,要能够处理多个打开的连接并同时进行维护并不像听起来那么简单,因此根据您的资源,您可能无法提供比Apple APNS更好的服务正常运行时间,因此尽管上述限制是正确的,但不一定像听起来那样糟糕。
我认为最好的办法是,因为无论如何您都需要实现推送支持,因此仅实现APNS,看看这是否满足您和您的客户的需求。请记住,沙盒(调试)APNS服务器比正常生产的APNS服务器要慢,因此请使用发行版进行测试,以了解仅使用APNS会对性能产生的实际影响。如果在旅途中您发现所提供的服务还不够,则只能实施其他服务。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句