消息推送
HT Android推送
- 用户A,向用户B发送消息,“你好”,后台首先判断用户B的在线状态;
- 如果在线,就走app内协议,比如HT聊天服务用的是websocket协议。
- 如果不在线,就走推送通道。后台取出用户B登录的时候向后台发送的token值,判断推送需要走哪个渠道,比如vivo,oppo等,然后通过第三方渠道提供的api接口,进行推送。
Android离线推送
与设备建立长连接:第三方服务器
- 手机厂商开发:小米推送、华为推送
- 客户端不断的查询服务器,检索新内容,也就是所谓的pull或者轮询方式,适用于短连接
- 客户端和服务器之间维持一个TCP/IP长连接,服务器向客户端push【苹果的推送系统和googleC2DM推送系统】
PUSH 和 PULL对比
PUSH优于PULL,原因如下:
- PUSH方式在满足需求情况下更省资源
- PULL方式,客户端需不断监测服务器变化,消耗更多服务器资源(CPU、网络流量、系统电量)
iOS推送
- 借助APNs,苹果提供的服务。
- APNs颁发作为设备标识的device-token。
- APP 开发者收集device-token,并整理推送内容+推送范围,给APNs。
- APNs 基于device-token推送消息。之后的推送就交给APNs
测试关注点
- Push消息能否按设定业务规则发送
- Push消息针对特定用户,收到的push消息与用户身份是否相符
- 系统设置不接收该APP通知消息时,用户应该不再收到Push消息
- Push消息能否正常打开
- APP在前台使用时,Push消息如何提示
- APP在后台运行时,Push消息如何提示
- APP离线时,能否收到Push消息
- 设备锁屏状态下,能否收到Push消息
- 设备网络断开后再一次建立连接时,能否收到Push消息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)