JS实现websocket长轮询实时消息提示的效果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JS实现websocket长轮询实时消息提示的效果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4107字,纯文字阅读大概需要6分钟。
内容图文
效果图如下:
参考代码如下:
jsp代码:
<%@ page contentType="text/html;charset=UTF-8" language="java"%> <div class="page-header navbar navbar-fixed-top"> <div class="page-header-inner"> <div class="page-logo"> <a href="<c:url value=" rel="external nofollow" rel="external nofollow" /"/>"><img src="<c:url value="/img/logo.png"/>" style="height: 14px" alt="logo" class="logo-default" /></a> <div class="menu-toggler sidebar-toggler hide"></div> </div> <a href="javascript:;" rel="external nofollow" rel="external nofollow" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse"></a> <div class="top-menu"> <ul class="nav navbar-nav pull-right"> <li class="dropdown dropdown-alert"><a href="#" rel="external nofollow" rel="external nofollow" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true"> <span class="badge pull-left"></span><label class="hidden-sm">报警</label><i class="fa fa-bell"></i> </a> <ul class="dropdown-menu"> </ul></li> <li class="dropdown dropdown-user"><a href="#" rel="external nofollow" rel="external nofollow" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true"> <span class="username username-hide-on-mobile">你好,${sessionScope.username}</span> <i class="fa fa-angle-down"></i> </a> <ul class="dropdown-menu"> <li><a href="javascript:;" rel="external nofollow" rel="external nofollow" id="updatePass"><i class="icon-lock"></i>修改密码</a></li> <li><a href="<c:url value=" rel="external nofollow" rel="external nofollow" /logout"/> "><i class="icon-key"></i>退出登录</a></li> </ul></li> </ul> </div> </div> </div> <div class="clearfix"></div> <script> //toastr.sos(num1) </script> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script> <script type="text/javascript" src="http://cdn.bootcss.com/sockjs-client/1.1.1/sockjs.js"></script> <script type="text/javascript"> function wsPath() { var pathName = window.document.location.pathname; var host = window.location.host; var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1); return (host + projectName); } wsPath = wsPath(); var websocket = null; if ('WebSocket' in window) { websocket = new WebSocket("ws://" + wsPath + "/websocket/socketServer"); } else if ('MozWebSocket' in window) { websocket = new MozWebSocket("ws://" + wsPath + "/bison/websocket/socketServer"); } else { websocket = new SockJS("http://" + wsPath + "/bison/sockjs/socketServer"); } websocket.onmessage = onMessage; websocket.onope = onOpen; websocket.onerror = onError; websocket.onclose = onClose; function onOpen() { } function onMessage(evt) { var $uncheckedAlertMenuBtn = $("a.dropdown-toggle", $uncheckedAlertMenu); var $uncheckedAlertBadge = $("span.badge", $uncheckedAlertMenuBtn); var $uncheckedAlertMenu = $('li.dropdown-alert'); var $uncheckedAlertList = $('ul', $uncheckedAlertMenu); var a = $uncheckedAlertBadge.html(); $uncheckedAlertBadge.html(Number(a) + 1); //判断报警类型 如果是位置偏移,place+1 if (evt.data == "1") { var count; var a = $("#number").html(); if (a == null) { count = 1; $uncheckedAlertList .prepend('<li class="place-alert"><a href="alert?menuId=274" rel="external nofollow" rel="external nofollow" > <font color="red" id="place-alert">' + "位置报警(<font id ='number'>" + count + "</font>)" + '</font></a></li>'); } else { count = Number(a) + 1; $("#place-alert").html( "位置偏移(<font id='number'>" + count + "</font>)"); } } if (evt.data == "0") { var count; var a = $("#snum").html(); if (a == null) { count = 1; $uncheckedAlertList .prepend('<li class="sos-alert"> <a href="alert?menuId=274" rel="external nofollow" rel="external nofollow" ><font color="red" id="sos-alert">' + "SOS报警(<font id='snum'>" + count + ")</font>" + '</font></a></li>'); } else { count = Number(a) + 1; $("#sos-alert").html( "SOS报警(<font id='snum'>" + count + "</font>)"); } } } function onError() { websocket.close(); } function onClose() { } window.close = function() { websocket.onclose(); } </script>
总结
以上所述是小编给大家介绍的JS实现websocket长轮询实时消息提示的效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
内容总结
以上是互联网集市为您收集整理的JS实现websocket长轮询实时消息提示的效果全部内容,希望文章能够帮你解决JS实现websocket长轮询实时消息提示的效果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。