zhuguifei
2026-03-10 58402bd5e762361363a0f7d7907153c77dbb819f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
* 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();
    }
 
 
 
 
}