/* * username 登录名 * project 项目名 (WCT.PMS) * * */ function connWebSocket(username, project) { var websocket = null; username = encodeURI(username); //判断当前浏览器是否支持WebSocket if ('WebSocket' in window) { console.info('ws://' + location.host + '/' + project + "/websocket?name="+username); websocket = new WebSocket('ws://' + location.host + '/' + project + '/websocket?name='+username); } else { console.info('当前浏览器 Not support websocket'); } //连接发生错误的回调方法 websocket.onerror = function () { console.info("WebSocket连接发生错误" + project); }; //连接成功建立的回调方法 websocket.onopen = function () { console.info("WebSocket连接成功" + project); } //接收到消息的回调方法 websocket.onmessage = function (event) { //PMS var data = event.data; var json = JSON.parse(data); console.info(json); var service = json.service; //消息来自哪个服务器 wct or pmd var type = json.type; //消息的类型 1-单耗告警,2-质量告警,0-普通消息 if(service=="wct"){ if(type == "1"){ }else if(type == "2"){ } }else if(service=="pms"){ if(type=="0"){ $.messager.show('提示', json.content, 'info'); } } } //连接关闭的回调方法 websocket.onclose = function () { console.info("webSocket已关闭!" + project); } //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。 window.onbeforeunload = function () { closeWebSocket(); } //关闭WebSocket连接 function closeWebSocket() { websocket.close(); } }