var wsOnTimers=null; var layerMaintenanceIndex=null; var reloginIndex=null; function initWebsocket(hostUrl,userCode,dbId,sessionId,userType,isColseLayer) { // 初始化weosocket var userFromType=1; if(userType!=undefined) userFromType=userType; var localHostUrl = hostUrl; var localUserCode = userCode ; var localDbId = dbId; var localSessionId = sessionId ; var colseLayer=isColseLayer; if(localUserCode==null||localUserCode==""||localUserCode=="null") localUserCode="temp_userCode_"+Math.random(); if(localDbId==null||localDbId==""||localDbId=="null") localDbId=Math.floor(Math.random() * (10000 - 2000)) + 2000; if(localUserCode==null||localUserCode==""||localUserCode=="null") localUserCode="temp_session_"+Math.random(); var info = '/ws/websocketMessage/'+localUserCode + '/'+ localDbId+'/' + localSessionId+'/'+userFromType ; var url = localHostUrl + info ; websocket = new WebSocket(url); websocket.onopen = function (e) { // 连接建立之后执行 console.log('WebSocket连接成功'); if(wsOnTimers!=null){ //console.log("onOpen-wsOnTimers:"+wsOnTimers); clearInterval(wsOnTimers); wsOnTimers=null; } if(colseLayer==true){ var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引 parent.layer.close(index); //再执行关闭 } } websocket.onerror = function (e) { /* timeron=setInterval(function () { //这里会定时3秒执行一次,直到成功为止,条件是timeron==null; if(timeron!=null) { console.log(timeron + ',onError,30秒后重连', e); initWebsocket(localHostUrl, localUserCode, localDbId, localSessionId, userType); } }, 30000);*/ this.websocket=null; }; websocket.onclose = function (e) { this.websocket=null; wsOnTimers=setInterval(function () { //这里会定时3秒执行一次,直到成功为止,条件是timeron==null; if(wsOnTimers!=null) { console.log(wsOnTimers + ',onClose,10秒后重连', e); initWebsocket(localHostUrl, localUserCode, localDbId, localSessionId, userType); } }, 10000); // console.log("wsOnTimers:"+wsOnTimers); }; // 接收消息 websocket.onmessage = function (e) { var json= JSON.parse(e.data); if(json.info.msgType==6014||json.info.msgType==6015){ //重定向到登录页面 setTimeout(function (){ location="/login.jsp?dbId="+json.info.dbId;//如果不指定dbid会造成取到同一个域名的其他数据源问题 },500); }else if(json.info.msgType==6016){ //重定向到登录页面 /* $.messager.show("提示", "您的账户已在其他设备浏览器登录,点击确定后返回登录页面", "info", function () { location="/login.jsp"; });*/ layer.open({ title: '提示' ,content: json.info.msg ,closeBtn:0 ,yes: function(index, layero){ //do something layer.close(index); //如果设定了yes回调,需进行手工关闭 location="/login.jsp?dbid="+json.info.dbId; } }); }else if(json.info.msgType==6017){ if(reloginIndex==null) { reloginIndex = layui.layer.open({ type: 2, area: ['400px', '200px'], closeBtn: 0, isOutAnim: false, title: [json.info.msg, 'font-size:18px;text-align:center;padding:0px'], resize: false, fixed: false, content: '/reloadsession.jsp?userCode=' + userCode, move: false, success: function (layero, index) { } }); } }else if(json.info.msgType==6019||json.info.msgType==6020||json.info.msgType==6022){ //百望云扫脸,6019表示扫脸成功,6020表示二维码失效,需要重新刷新 try { top.layIframeWindow.qrCodeFail(json); }catch (e){console.log(e)} }else if(json.info.msgType==6021){ $.messager.alert('提示', json.info.msg, "info", function () { window.open(json.info.url,'',' width='+ (screen.availWidth - 10) +',height='+ (screen.availHeight-50) +',scrollbars,resizable=yes,toolbar=no'); $(top.layeerFace).css("display", "none"); return; }); }else if(json.info.msgType==6023){ top.layIframeWindow.goalDom.qrCodeRefreshFun(); }else if(json.info.msgType==6002){ //右下角弹窗 //console.log('接收消息', json); popMessage(json.info.msg); }else if(json.info.msgType==6999){ //显示维护界面 if(layerMaintenanceIndex==null) { layerMaintenanceIndex = layer.open({ title: '系统维护', type: 0, resize: false, area: ['800px', '600px'], btn: null, // closeBtn: 0, // cancel: function(){ // layerMaintenanceIndex=null; // }, content: '' }); } }else if(json.info.msgType==6998){ //关闭维护界面 if(layerMaintenanceIndex!=null){ layer.close(layerMaintenanceIndex); layerMaintenanceIndex=null; } } //console.log('接收消息', json); } } var popflag=false; function popMessage(message){ var json=JSON.parse(message); var message6002=""; var colt=0; var zong=1; for(var i=0;i"+zong + ": "+messagetxt+""; } else if (entity["url"]!=undefined&&entity["url"]!="") { var url = ""; if (entity["url"].indexOf("http://")<0) { url = "http://" + entity["url"]; } else { url = entity["url"]; } message="
"+zong + ": "+messagetxt+"
"; } else { message="
"+zong + ": "+messagetxt+"
"; } return message; } function funB6002(message){ var init = $.cookie(userCode); if(init==null){ $.cookie(userCode,popflag); } if( $.cookie(userCode)=="false"){ $.messagerTip.lays(300, 220); $.messagerTip.show(0, message); popflag= $("input[name='isTip']").is(":checked"); $.cookie(userCode,popflag,{expires: 1}) } } function funB6003(json) { var messageType = json["messagetype"] ; var myMessages = json["messagetxt"] ; myMessages = myMessages.replace(/\t/g,"  "); //替换所有的换行符 myMessages = myMessages.replace(/\r\n/g,"
") myMessages = myMessages.replace(/\n/g,"
"); //替换所有的空格(中文空格、英文空格都会被替换) // myMessages = myMessages.replace(/\s/g," "); myMessages +="


" ; myMessages += json["createusername"] + "  " + json["createtime"] ; openToast(myMessages,json["topic"],messageType); }