网上一大堆介绍push的东西,以前公司用androidpn也实现了push功能,但是一直不清楚push的原理。怎么说呢,你要主动发送消息到手机,你怎么的也要能定位手机吧,比如你要远程控制一个电脑,你怎么的也要知道对方IP吧……,但是怎么定位手机呢?不要给我说什么xmpp协议,通过协议我觉得是不可能完成这样功能的。我觉得除了运营商,没有人可以定位手机。后来我和一个牛人讨论,他说苹果的push机制其实也是客户端轮询,只不过是系统级别的轮询,而不是应该程序,所有的应用共用一个轮询。有这方面疑问,或者答案的朋友欢迎讨论。

解决方案 »

  1.   

    苹果的 Push 机制 (APNs) 不是轮询,是TCP长连接。
    大部分真正的 Push 需要客户端能够实时推送到,都不会是轮询,都是TCP长连接。(SMS这种特例不在范围内)。androidpn (底层基于 XMPP),也是长连接。这里有个科普贴:通过Push来提高移动应用的活跃度在国内因为众所周知的GCM不可用,Android Push 的确是个很令人痛苦的事情。也是了解到这一点,我们团队最近为开发者开放了一个免费的推送服务:极光推送。希望楼主可以了解下,提供意见。 谢谢!