[android] 安卓消息推送的几种实现方式
2023-02-18 15:47:25 时间
消息推送的目的:让服务器端及时的通知客户端
实现方案
轮询:客户端每隔一定的时间向服务器端发起请求,获得最新的消息
特点:如果用在最新新闻通知上,效率就有点低了,技术简单,好实现
应用场景:服务器端以一定的频率更新时,如:股票行情,就比较适用轮询了
当你把手机应用的聊天打开,过了一会发烫,基本就是轮询实现的
发短信:服务端发送短信,客户端对短信进行解析
特点:最及时,费用高
应用场景:土豪公司,没联网也可以收到信息
使用第三方的开源项目:
androidPN (android push notify)
使用第三方的api:
百度推送,极光推送,各推,微信推送,等
消息推送的实现原理
长连接+心跳帧,我们平常的socket连接都是短连接,当用完之后会close掉,长连接是一直保持这个连接状态,但是如果一段时间,服务器和客户端没有消息传递,这个连接会被断掉,这个时候就引入了心跳帧的概念,客户端每隔一段时间会发送一条心跳短消息,保证连接一直存在
相关文章
- [android] 安卓消息推送的几种实现方式
- [android] 安卓进程优先级&为什么使用服务
- MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨
- [android] 安卓自定义样式和主题
- [javaEE] 开源数据库连接池
- [javaEE] 数据库连接池和动态代理
- [android] 安卓消息推送的几种实现方式
- [android] 安卓进程优先级&为什么使用服务
- Mysql join left查询无法命中索引一例
- 2022-12-11:行程和用户。以下为输出结果,请问sql语句如何写? +------------+-------------------+ | Day |
- Valentina Studio Pro mac/win(数据库管理器)最新版
- 10个人9个答错,另外1个只对一半:数据库的锁,到底锁的是什么?
- (一)Mysql基础
- (二)Mysql基本操作
- (三)SQL语言基础
- (五)SQL运算符
- 数据库运维 | 携程分布式图数据库NebulaGraph运维治理实践
- Oracle连接工具PLSQL登录时提示初始化失败,无法锁定OCI.dll错误解决
- SQL 入门篇之什么是别名?
- SQL ALTER TABLE 语句