我对应用程序有一个想法,并且我试图首先获得实现它的计划。我打算在Google App Engine上实现一个java服务,这将把消息推送到订阅者,我有一个频道的概念,与Parse完全相同。遗憾的是,GAE不支持Parse,它只有一个Android客户端。
GCM是否有基于频道的推送通知?就像一个设备可以订阅多个频道,我可以通过一个频道推送消息,并且该频道的所有订阅者都可以收到通知吗?
或者我还有其他选择吗?
答案 0 :(得分:0)
GCM不支持基于频道的通知。
如果您直接使用GCM,则必须自己实现此功能:您的服务器必须管理频道和设备之间的映射(注册ID),并在您希望时推送到订阅频道的所有设备推进那个频道。
答案 1 :(得分:0)
注1 :已经完成,APNS和GCM。您还有其他任何功能,这两个系统尚未提供吗?
GAE不支持侦听套接字,这会阻止构建任何服务器到设备的持久连接推送系统。
注意2 :有Channels API,但它只是网络,因为它包含在一个不透明的javascript包装器中,并且它的协议是故意隐藏的。
备选方案1 :使用PubNub,Pusher,Amazon SNS等现有外部服务。
备选方案2 :而不是GAE使用Compute Engine,它没有这样的限制。然而,它(还)没有任何大多数GAE好东西:它的服务API(数据存储,队列等)。
注3 :您对持久连接的想法只有在设备上的应用程序处于“活动状态”时才会起作用,例如:在前台(至少在iOS上,在Android上它可能但会严重影响电池)。对于通用的推送设备,您需要将系统与平台提供的异步推送系统(例如APNS和GCM)结合使用。