我们在讨论 Android 手机上的推送时,大多数情况是在说集成第三方推送,因为即使是像微信这样的大厂,也需要厂商加到启动白名单里才能保持在线。
这样一来,国产手机的推送就成了个问题,也带了机会。
推送的实现方式
总结一下几种推送实现方式,其中有些我们只要了解即可,因为属于历史解决方案,现在已经被废弃掉了。
轮询
客户端定期询问服务器有没有新的消息,这种方式最大的缺点就是性能和实时性的矛盾,轮询时间过长和过短都不好。
短信
这种方式还没出生就不被允许了,首先运营商不会配合,其次拦截手机短信本身就是一个高危权限,大多数用户不会买单。
长连
目前最通用的方案,客户端与服务端建立 TCP 长连,定时发送心跳包保活,有新消息时服务端通过该长连通道进行推送。
这里再简单说明一下长连和心跳包。长连接就是建立连接之后,双方互相发送数据,,发完了也不主动断开连接。
但是在某些情况下长连会断开,问题就在断开这件事上,而且这件事必须是由客户端知道,因为客户端是可以重连服务器的,服务器却没法再联系上客户端。这样才确定了心跳包必须由客户端发给服务器。所以心跳包的作用就是告诉服务端客户端还活着,如果服务端挂了,客户端能知道,所以保活说的是保持两边都活着。即时通讯聊天软件app开发可以加蔚可云的v:weikeyun24咨询