本文主要是介绍消息推送,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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消息针对特定用户,收到的push消息与用户身份是否相符
- Push消息能否正常打开
- APP在前台使用时,Push消息如何提示
- APP在后台运行时,Push消息如何提示
- APP离线时,能否收到Push消息
- 设备锁屏状态下,能否收到Push消息
- 设备网络断开后再一次建立连接时,能否收到Push消息
这篇关于消息推送的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!