思路
1.web的notification接口
2.轮训数据库--这里轮训好像可是定时器,还有个web的接口好像也能满足
3.使用web socket 不管是自己架还是不用第三方.
现在的问题是如何实现自定义的提醒样式,并且能跨浏览器标签页显示,即A标签上的通知,在切换到B标签页时也能收到通知?
思路
1.web的notification接口
2.轮训数据库--这里轮训好像可是定时器,还有个web的接口好像也能满足
3.使用web socket 不管是自己架还是不用第三方.
现在的问题是如何实现自定义的提醒样式,并且能跨浏览器标签页显示,即A标签上的通知,在切换到B标签页时也能收到通知?
可以考虑用laravel来做,有两种实现的办法。第一种是借助pusher这个包来做,这个相对容易,但是有连接个数的限制,超出是会收费的。另外一种是利用laravel的广播机制结合redis和socket.io来做到像你说的实时通信。
redis+socket.io教程
我根据这个教程也实现了消息的推送和一对一的推送,楼主可以看一下
不知道你提到的这个功能,是否必须要用到notification技术栈,因为这个我也没使用过。但是按照你跟前面两位的评论来看,大致就是一个消息推送的功能。
其实你可以参考下,workerman的消息推送系统
你在后台做了什么操作,可以通过这个框架推送到你指定或者全部的客户端上,你说的自定义的样式。完全可以在后台处理,打包发送数据到客户端,客户端通过socket监听端口,显示就好了。
你这边要分为两个问题
1、消息推送方式
2、消息展示方式
消息推送方式:
轮询(主动拉数据):setInterval + ajax
websocket(双向通讯):websocket api
sse(被动推送):EventSource
消息展示方式:
model弹窗
notification api
建议:websocket + notification
websocket:php 的话可以了解下 Gateway
notification:这个我没有考虑过样式问题。。。
如果说消息推送没问题的话,只谈体验
notification
肯定是最好的,不管你在哪个标签页上,都会直接弹出来,是系统级别的
当然第一次使用,需要权限,和手机比较类似
不过,这个api兼容性可能不咋地,所以,还有一种做法,类似于https://segmentfault.com
的做法,改变页面的title
其实也是比较明显的
建议两种做法都做吧,体验更好
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决