import { formatTime } from './public.js';
var ws = null;
var global_callback = null;
function initWS(url) { // 初始化weosocket
if ('WebSocket' in window) { // 判断浏览器对WebSocket的支持
console.log("您的浏览器支持websocket协议");
ws = new WebSocket(url); // 创建 WebSocket 对象
} else {
console.log("您的浏览器--不--支持websocket协议");
}
ws.onclose = function(e) { // 连接关闭
wsClose(e);
}
ws.onerror = function(e) { // 连接错误
wsError(e);
}
ws.onopen = function(e) { // 连接成功
wsOpen(e);
}
ws.onmessage = function(res) { // 返回消息
wsOnmessage(res);
}
}
// 实际调用的方法
function sendSock(sendData, callback){
global_callback = callback;
if (ws.readyState === ws.OPEN) {
// 若是ws开启状态
console.log("ws 链接正常");
wsSend(sendData)
} else if (ws.readyState === ws.CONNECTING) {
// 若是 正在开启状态,则等待1s后重新调用
console.log("ws 正在链接……");
setTimeout(()=>{
sendSock(sendData, callback);
}, 1000);
} else {
// 若未开启 ,则等待1s后重新调用
console.log("ws 链接未开");
setTimeout(()=>{
sendSock(sendData, callback);
}, 1000);
}
}
// 关闭 要执行的操作
function wsClose(e){
console.log("WS-连接关闭! " + formatTime() );
console.log("connection closed (" + e.code + ")");
}
// 错误 要执行的操作
function wsError(e){
console.log("WS-连接错误! " + formatTime() );
console.log(e)
}
// 连接成功 要执行的操作
function wsOpen(e){
console.log("WS-连接成功! " + formatTime() );
console.log(e)
}
// 数据接收成功 要执行的操作
function wsOnmessage(e){
console.log("WS-数据接收成功! " + formatTime() );
console.log("WS-e >>> ", e );
// global_callback(JSON.parse(e.data));
}
// 数据发送
function wsSend(sendData){
console.log("原始发送数据", sendData)
let sendMsg = JSON.stringify(sendData)
console.log("stringify后发送数据", sendData)
ws.send(sendMsg);
}
// initWS("ws://121.40.165.18:8800");
export { initWS, sendSock }
【学习随记】ws test before
最新推荐文章于 2021-06-09 15:21:13 发布