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

这篇文章主要介绍了JS(jQuery)实现聊天接收到消息语言自动提醒功能,结合实例形式详细分析了javascript结合ajax后台交互实现信息语音提示功能相关原理与操作技巧,需要的朋友可以参考下。

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

综述

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

思路

实时提醒

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

定时提醒

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

代码实现

  1. <!--=======================================-->
  2. <!--Created by ZHIHUA·WEI.-->
  3. <!--Author: Wei ZhiHua-->
  4. <!--Date: 2019/01/09-->
  5. <!--Time: 下午 17:26-->
  6. <!--Project: ZHIHUA·WEI-->
  7. <!--Power:JS实现聊天接收到消息语言自动提醒-->
  8. <!--=======================================-->
  9. <!DOCTYPE html>
  10. <html>
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  13. <title>JS实现聊天接收到消息语言自动提醒(您有新的消息请注意查收)</title>
  14. <!--引入CSS、JS-->
  15. <script type="text/javascript" src="public/common/js/jquery-1.8.1.min.js"></script>
  16. </head>
  17. <style>
  18. #audio_click {
  19. margin-top: 32px;
  20. height: 40px;
  21. }
  22. #audio_click a {
  23. text-decoration: none;
  24. background: #2f435e;
  25. color: #f2f2f2;
  26. padding: 10px 30px 10px 30px;
  27. font-size: 16px;
  28. font-family: 微软雅黑, 宋体, Arial, Helvetica, Verdana, sans-serif;
  29. font-weight: bold;
  30. border-radius: 3px;
  31. -webkit-transition: all linear 0.30s;
  32. -moz-transition: all linear 0.30s;
  33. transition: all linear 0.30s;
  34. }
  35. #audio_click a:hover {
  36. background: #385f9e;
  37. }
  38. </style>
  39. <body>
  40. <!--dom结构部分-->
  41. <div >
  42. <!--用来存放item-->
  43. <h1>JS实现聊天接收到消息语言自动提醒</h1>
  44. <h3>(您有新的消息请注意查收)</h3>
  45. <div >
  46. <a href="#" rel="external nofollow" >播放语音</a>
  47. </div>
  48. <div ></div>
  49. </div>
  50. </body>
  51. <script>
  52. $(function () {
  53. var html = '';
  54. html += '<audio >';
  55. //格式ogg音频地址
  56. html += '<source src="/public/static/layui/newmsg.ogg" type="audio/ogg">';
  57. //格式mp3音频地址
  58. html += '<source src="/public/static/layui/newmsg.mp3" type="audio/mpeg">';
  59. //格式wav音频地址
  60. html += '<source src="/public/static/layui/newmsg.wav" type="audio/wav">';
  61. html += '</audio>';
  62. //将代码写入到页面中
  63. $(html).appendTo("#audio_play");
  64. //轮询ajax检测未读消息,每五分钟
  65. var setTime = setInterval(function () {
  66. $.ajax({
  67. type: "post",
  68. url: "{:url('index/getNoReadMsg')}", //查询客服是否有未读消息
  69. dataType: "json",
  70. success: function (ret) {
  71. if (ret.code == 1) {
  72. //有则进行播放语音提醒
  73. $('#audioPlay')[0].play();
  74. }
  75. }
  76. });
  77. }, 300000);
  78. });
  79. $("#btn_audio").click(function () {
  80. //这就代码就是播放语音的关键代码
  81. $('#audioPlay')[0].play();
  82. });
  83. </script>
  84. </html>