求网页提醒优质解决方式!

思路
1.web的notification接口
2.轮训数据库--这里轮训好像可是定时器,还有个web的接口好像也能满足
3.使用web socket 不管是自己架还是不用第三方.
现在的问题是如何实现自定义的提醒样式,并且能跨浏览器标签页显示,即A标签上的通知,在切换到B标签页时也能收到通知?

阅读 2.4k
5 个回答
需求可以再细化一下
类似于每次升级提示那种 加载然后提示?
还是说在浏览过程中(进程运行中) 突然给与的提示?
如果时刻保持通信.类如对战游戏 肯定是socket好一点,如果频率不高 轮询 长轮询都可以
业务需求先弄好 再定这个技术

可以考虑用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肯定是最好的,不管你在哪个标签页上,都会直接弹出来,是系统级别的

clipboard.png

当然第一次使用,需要权限,和手机比较类似

clipboard.png

不过,这个api兼容性可能不咋地,所以,还有一种做法,类似于https://segmentfault.com的做法,改变页面的title

clipboard.png

其实也是比较明显的

建议两种做法都做吧,体验更好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题