我想反复(每秒)向另一个Android设备询问GAE(如果android客户端没有创建或更改某些内容)的消息(对象或值)。我需要很快检查它,但我知道它每小时都会发生一次。
我使用restlet并且我不想每秒从这个线程获取创建新线程和轮询,因为这非常耗电。我也不想使用C2DM。
以某种方式可以做到这一点吗?我在这里找到了一些关于NIO非阻塞http连接器的东西: http://restlet-code.1609877.n2.nabble.com/Push-data-from-server-using-a-live-HTTP-connection-td2906563.html
但这里仅描述了客户端,我也不知道这个解决方案是否可以在GAE上使用以及如何使用。有没有人更了解这种方法?
非常感谢你。
答案 0 :(得分:1)
作为uniqush的作者,我在特定于此问题的FAQ页面中创建了一个条目。
我可以在Google App Engine上使用uniqush吗?
是和否。
如果您只想在Google App Engine上使用GCM,那么uniqush-push中有一些代码可供您直接使用。
但是,由于Google App Engine不支持套接字连接,因此无法使用APNS。在另一项工作中,如果您想在Google App Engine上设置服务器,则无论您使用何种软件/库,都无法向iOS设备发送任何通知。
我确实考虑过将uniqush移植到Google App Engine。但由于这个事实,我认为在谷歌允许我们使用客户端套接字连接或提供某种方式连接到APNS服务器之前移植它可能会更好。
同样,如果您正在考虑将Google App Engine用作应用的服务器,请注意,您现在无法将通知推送到任何iOS设备。如果这个事实没有打扰你,那就去做吧。
就个人而言,我建议你运行一个完全控制的服务器。现在它并不昂贵。 Amazon EC2或类似的云产品可能是运行uniqush的不错选择。
正如我上面所建议的,如果你想支持除Android以外的更多平台,使用具有完全控制权的(虚拟)服务器将是更好的选择。
如果还有其他问题,请随时回复。
答案 1 :(得分:0)
答案 2 :(得分:0)
this与Urban Airship类似,但只是成本的一小部分。 API允许您通过呼叫向用户发送C2DM消息。实现广播接收器后,当用户安装应用程序时,系统会提示他们接受该消息。如果他们接受将令牌发送到识别用户的C2DM服务器。然后,该令牌用于通过C2DM平台向他们发送消息。 Zend PHP框架内置了功能,但如果可靠性是一个问题,请使用远程查询或Urban Airship等外部提供程序