优雅地实现 Android Push,这是原本的题意。
如果要自己去实现,则肯定优雅不起来。
现在的成熟模式都是 TCP长连接。APNs / GCM 等都是。
最优雅的实现方式,肯定是直接利用平台原生提供的推送方案:iOS 用 APNs,Android 用 GCM。
当然我们知道 Android 在国内 GCM 优雅不起来。
另外一个次优选择是:使用第三方提供的推送方案。国外典型的如 Urban Airship,国内典型的如 极光推送。
第三方推送服务有一个地方会比原生的方案更优雅:同时支持多平台。比如,极光推送你可以同时向 Android / iOS 客户端推送同一条消息。