内容类型对于这个问题并不重要,但我们只想说我想实现一个允许多个用户在共享列表上进行协作的(本机移动)购物列表应用。
这样的同步功能通常如何实现自动工作(没有明确的用户交互)?是每隔几秒钟检查一次新版本并在必要时更新的首选方法,还是可以推送更改?
轮询解决方案(相对)易于实现我猜想使用类似AWS,Google App Engine的东西,甚至是在LAMP堆栈和REST上从头开始。但我担心持续投票导致的流量。
尝试使用推送更新来实现这一点是否可行?如果是这样,我应该研究哪些技术,服务或设计原则? AWS或Google App Engine是否可以这样?或者是拉(并尽可能减少流量)的方式去?
答案 0 :(得分:2)
在应用引擎上,您应该查看频道API。来自overview:
Channel API会在您的应用与Google之间建立持久连接 服务器,允许您的应用程序实时向JavaScript客户端发送消息,而无需使用轮询。这对于旨在立即向用户更新新信息或将用户输入立即广播给其他用户的应用程序非常有用。一些示例包括协作应用程序,多人游戏和聊天室。通常,在无法预测或编写更新的情况下使用Channel API是一种更好的选择,例如在人类用户之间转发信息或从系统生成的事件中转发信息时。
答案 1 :(得分:0)
您可以使用一些Amazon Web Services来创建有效且响应迅速的服务。
如果您查看可以从AWS site下载的IOS SDK,您可以在其中找到使用此类服务的服务的示例:S3_SimpleDB_SNS_SQS_Demo
首先,您可以使用排队服务SQS,它具有long polling,可帮助您降低请求数量。
其次,您可以使用SNS,即通知(发布/订阅)服务。它与SQS集成,您可以subscribe queues to listen to notifications。
可以通过iOS SDK以及其他SDK(Java,.NET,Android ...)以及REST和SOAP API访问这些服务(和其他服务)。