whyczyk
2021-10-08 b77a08b70d8fc45ce700d8fc86e53503e9a8ec05
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
import getWsUrl from "@/assets/js/getWsUrl";
var websock = null;
var global_callback = null;
 
function initWebSocket(action, port) { //初始化weosocket
    //ws地址
    const wsUri = getWsUrl(action, port);
    websock = new WebSocket(wsUri);
    websock.onmessage = function (e) {
        websocketonmessage(e);
    }
    websock.onclose = function (e) {
        websocketclose(e);
    }
    websock.onopen = function () {
        websocketOpen();
    }
 
    //连接发生错误的回调方法
    websock.onerror = function () {
        console.log("WebSocket连接发生错误");
    }
}
 
// 实际调用的方法
function sendSock(agentData, callback) {
    global_callback = callback;
    if (websock.readyState === websock.OPEN) {
        //若是ws开启状态
        websocketsend(agentData)
    } else if (websock.readyState === websock.CONNECTING) {
        // 若是 正在开启状态,则等待1s后重新调用
        setTimeout(function () {
            sendSock(agentData, callback);
        }, 1000);
    } else {
        // 若未开启 ,则等待1s后重新调用
        setTimeout(function () {
            sendSock(agentData, callback);
        }, 1000);
    }
}
 
//数据接收
function websocketonmessage(e) {
    global_callback(JSON.parse(e.data));
}
 
//数据发送
function websocketsend(agentData) {
    websock.send(JSON.stringify(agentData));
}
 
//关闭
function websocketclose() {
    console.log("WebSocket已关闭");
}
//WebSocket连接成功
function websocketOpen() {
    console.log("WebSocket连接成功");
}
 
function close() {
    websock.close()
}
 
export { sendSock, initWebSocket, close }