vue预警功能开发及谷歌浏览器下音频播放

先说一下项目背景,要求开发一个预警功能,我的思路是用springboot的定时任务循环查询数据库是否有预警记录,然后向websocket发送消息,此处的websocket是vue框架下,每打开一个页面建立一个连接(抱歉,vue全局变量没整明白,所以只能每个页面都建立连接),然后在其中一个连接下播放声音。目前仍然没有解决的问题:chrome浏览器下播放音频,页面刷新后必须要点击一下页面,才可以报警,通过路由跳转则不会出现该问题,猜测时跳转时,将点击动作带入到新页面,刷新会将数据清除。

遇到的问题:

1,jeecg框架下开始的时候只能建立一个socket连接,打开新页面之前的连接失效

解决措施,通过在socket文件中加@Scope("prototype")注解,这样就能建立多个连接

2,有预警时,谷歌浏览器下不能自动播放音频

解决措施如下



this.$refs.audio.play()//这样播放声音

原理是先通过iframe播放一段静音音频,打开音频权限,然后播放报警声音

其中