消息推送的目的:让服务器端及时的通知客户端
实现方案
轮询:客户端每隔一定的时间向服务器端发起请求,获得最新的消息
特点:如果用在最新新闻通知上,效率就有点低了,技术简单,好实现
应用场景:服务器端以一定的频率更新时,如:股票行情,就比较适用轮询了
当你把手机应用的聊天打开,过了一会发烫,基本就是轮询实现的
发短信:服务端发送短信,客户端对短信进行解析
特点:最及时,费用高
应用场景:土豪公司,没联网也可以收到信息
使用第三方的开源项目:
androidPN (android push notify)
使用第三方的api:
百度推送,极光推送,各推,微信推送,等
消息推送的实现原理
长连接+心跳帧,我们平常的socket连接都是短连接,当用完之后会close掉,长连接是一直保持这个连接状态,但是如果一段时间,服务器和客户端没有消息传递,这个连接会被断掉,这个时候就引入了心跳帧的概念,客户端每隔一段时间会发送一条心跳短消息,保证连接一直存在