谷歌推送服务GCM/或者FCM可以让开发者在客户端和服务器之间传递消息,有2种方式实现消息推送,一种是xmpp,它即可让服务器把消息推送给客户端,也可让客户端把消息推送给服务器,另一种方式是http,只能服务器将消息推送给客户端。
一、关于token
和使用一般的sdk类似,首先需要在官网注册自己的应用,获取一个appid,出于安全要求,需要在本地使用这个appid去获取动态token,需要把token上传给服务器,每隔一段时间token可能会失效,需要去重新获取token。
应用场景上分为单token和多token的方案:
- 单token :通过此token,服务端可以给谷歌的fcm服务发push消息,token可以由客户端主动上传,需要定期刷新。曾经发生过。
- 多token:比如应用app更新版本了,同一设备账号注销重新注册了新号,设置一个定时过期时间过去了
强制无效token:加入Token invalid机制,服务器发送Token无效时要求客户端重新生成。
二、push的其他要素
消息重发问题:有没有ack机制,
离线缓存功能:用户离线服务端是否保存消息
二、统计push的几个指标:
Push有个形象的叫漏斗统计图。漏斗从上到下,逐渐收敛。
漏斗各环节:
- 发送侧消息:
- fcm发送和ack包:可以包括uv和pv
- 到达:app应用fcm到达。
- 展示:展示在用户端。
- 划除(已消费)。