JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】


Posted in PHP onApril 16, 2019

本文实例讲述了JS(jQuery)实现聊天接收到消息语言自动提醒功能。分享给大家供大家参考,具体如下:

综述

最近在开发一个网页端的客服系统,需求要求聊天双方接收到消息能有语音提醒,并且客服端如果存在未读消息要求每隔五分钟给客服语音提醒一下。客服聊天系统使用PHP的Workerman框架进行开发,由于语音提醒实现的功能一样,故而在本篇博文中从简描述,只进行定时循环提醒的功能记录,不说实时的那个语音提醒,因为思路都是一样的,主要是看如何实现自动播放语音功能。

思路

实时提醒

这个就比较明确了,就是在接收到消息的同时进行语音播放,大家可以根据自己的逻辑进行将代码放到合适的地方。

定时提醒

这个主要首先判断客户是否存在未读的消息,如果存在则语音提醒,如果不存在,则不进行提醒。故而要在HTML页面写一个定时器,每五分钟访问一次接口,查询客服是否存在未读消息,然后在后台开发一个接口用于返回客户是否存在未读消息。

代码实现

<!--=======================================-->
<!--Created by ZHIHUA·WEI.-->
<!--Author: Wei ZhiHua-->
<!--Date: 2019/01/09-->
<!--Time: 下午 17:26-->
<!--Project: ZHIHUA·WEI-->
<!--Power:JS实现聊天接收到消息语言自动提醒-->
<!--=======================================-->
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>JS实现聊天接收到消息语言自动提醒(您有新的消息请注意查收)</title>
  <!--引入CSS、JS-->
  <script type="text/javascript" src="public/common/js/jquery-1.8.1.min.js"></script>
</head>
<style>
  #audio_click {
    margin-top: 32px;
    height: 40px;
  }
  #audio_click a {
    text-decoration: none;
    background: #2f435e;
    color: #f2f2f2;
    padding: 10px 30px 10px 30px;
    font-size: 16px;
    font-family: 微软雅黑, 宋体, Arial, Helvetica, Verdana, sans-serif;
    font-weight: bold;
    border-radius: 3px;
    -webkit-transition: all linear 0.30s;
    -moz-transition: all linear 0.30s;
    transition: all linear 0.30s;
  }
  #audio_click a:hover {
    background: #385f9e;
  }
</style>
<body>
<!--dom结构部分-->
<div style="width: 100%;text-align: center">
  <!--用来存放item-->
  <h1>JS实现聊天接收到消息语言自动提醒</h1>
  <h3>(您有新的消息请注意查收)</h3>
  <div id="audio_click">
    <a id="btn_audio" href="#" rel="external nofollow" >播放语音</a>
  </div>
  <div id="audio_play"></div>
</div>
</body>
<script>
  $(function () {
    var html = '';
    html += '<audio id="audioPlay">';
    //格式ogg音频地址
    html += '<source src="/public/static/layui/newmsg.ogg" type="audio/ogg">';
    //格式mp3音频地址
    html += '<source src="/public/static/layui/newmsg.mp3" type="audio/mpeg">';
    //格式wav音频地址
    html += '<source src="/public/static/layui/newmsg.wav" type="audio/wav">';
    html += '</audio>';
    //将代码写入到页面中
    $(html).appendTo("#audio_play");
    //轮询ajax检测未读消息,每五分钟
    var setTime = setInterval(function () {
      $.ajax({
        type: "post",
        url: "{:url('index/getNoReadMsg')}", //查询客服是否有未读消息
        dataType: "json",
        success: function (ret) {
          if (ret.code == 1) {
            //有则进行播放语音提醒
            $('#audioPlay')[0].play();
          }
        }
      });
    }, 300000);
  });
  $("#btn_audio").click(function () {
    //这就代码就是播放语音的关键代码
    $('#audioPlay')[0].play();
  });
</script>
</html>

下载

本源码包文件我已经上传到资源库中,有需要的童鞋可以自行下载,里面包含代码和音频文件。

完整实例代码点击此处本站下载

之后将代码中相应的资源路径修改之后即可使用。

希望本文所述对大家JavaScript程序设计有所帮助。

PHP 相关文章推荐
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
如何用PHP实现插入排序?
Apr 10 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
php实现快速对二维数组某一列进行组装的方法小结
Dec 04 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 #PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 #PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 #PHP
Laravel框架文件上传功能实现方法示例
Apr 16 #PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
Apr 16 #PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 #PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 #PHP
You might like
使用PHP模拟HTTP认证
2006/10/09 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
基于php缓存的详解
2013/05/15 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
构建Python包的五个简单准则简介
2015/06/15 Python
python安装与使用redis的方法
2016/04/19 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
python字典快速保存于读取的方法
2018/03/23 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
windows下python安装pip方法详解
2020/02/10 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
非常详细的C#面试题集
2016/07/13 面试题
外企测试工程师面试题
2015/02/01 面试题
小型女装店的创业计划书
2014/01/09 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书