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类
Oct 09 PHP
PHP静态新闻列表自动生成代码
Jun 14 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
使用php统计字符串中中英文字符的个数
Jun 23 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
php命令行写shell实例详解
Jul 19 PHP
PHP递归的三种常用方式
Feb 28 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 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 4.2书写安全的脚本
2006/10/09 PHP
php 获取一个月第一天与最后一天的代码
2010/05/16 PHP
PHP进程同步代码实例
2015/02/12 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
骨干教师培训感言
2014/01/16 职场文书
上课玩手机检讨书
2014/02/08 职场文书
《争吵》教学反思
2014/02/15 职场文书
业务员的岗位职责
2014/03/15 职场文书
关于环保的演讲稿
2014/05/10 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
健康教育主题班会
2015/08/14 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL