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 相关文章推荐
比较全面的PHP数组的使用方法小结
Sep 23 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
PHP页面中文乱码分析
Oct 29 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
smarty的section嵌套循环用法示例
May 28 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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的header和asp中的redirect比较
2006/10/09 PHP
我的论坛源代码(四)
2006/10/09 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
超清晰的document对象详解
2007/02/27 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
Python 的描述符 descriptor详解
2016/02/27 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
Linux上比较文件的命令都有哪些
2013/09/28 面试题
酒店管理失职检讨书
2014/09/16 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
生死抉择观后感
2015/06/09 职场文书