websocket 封裝

var websock = null;
var global_callback = null;
var serverPort = '8000'; //webSocket連接端口

// function getWebIP(){
// var curIP = window.location.hostname;
// return curIP;
// }

function initWebSocket(){ //初始化weosocket

//ws地址
// var wsuri = "ws://" +getWebIP()+ ":" + serverPort;
let wsuri = "ws://172.16.70.100:9999/qd/userLongConnect"; //無(上一步、下一步) designId
// let wsuri = "ws://172.16.70.100:9999/qd/longConn"
websock = new WebSocket(wsuri);
websock.onopen = function () {
    websocketOpen();
    websock.send({flag: 3, designId: "1234567890" });
}
websock.onmessage = function(e){
    websocketonmessage(e);
} 
websock.onclose = function(e){
    websocketclose(e);
}
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 websocketOpen(){

console.log("連接成功");

}

//數據接收
function websocketonmessage(msg){

return global_callback(msg.data);

}
//數據發送
function websocketsend(agentData){

let value = JSON.stringify(agentData);
websock.send(value);

}

//關閉
function websocketclose(){

console.log("連接關閉");

}

initWebSocket();

export {

sendSock,
websocketclose,

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章