浏览器允许业务服务向用户客户端推送消息,客户端收到推送消息后以通知的形式展示出来。业务运营人员可以通过这项功能定向给用户推送推荐消息或者重要通知,用于提升用户留存和用户使用时长。
下文demo全部代码可以在news-push-example中看到。
简述
消息推送效果如下(当用户没有打开业务网站时,业务网站也能正常通知,在最终效果中有展示):
网页消息推送流程图如下所示:
整个过程主要可以分成订阅和推送这两部分,参与的角色主要有浏览器、浏览器推送服务、业务服务,下图可以看到这三者之间的关系(图片出自Web Push草案)
+-------+ +--------------+ +-------------+
| UA | | Push Service | | Application |
+-------+ +--------------+ | Server |
| | +-------------+
| Subscribe | |
|--------------------->| |
| Monitor | |
|<====================>| |
| | |
| Distribute Push Resource |
|-------------------------------------------->|
| | |
: : :
| | Push Message(1) |
| Push Message(2) |<---------------------|
|<---------------------| |
| | |
注:
UA:浏览器客户端
Push Service:浏览器推送服务。不同浏览器厂商会部署自己的推送服务。
Application Server:业务服务。主要用于存放用户客户端订阅信息和向push service推送消息两部分工作。
订阅流程:
- Subscribe:浏览器向push service发起推送订阅,获得订阅信息。
- Monitor:pu