import { Message } from 'element-ui' var wsc2={ url : 'ws://127.0.0.1:9999', ws:null, is_online:false, timer_ping:null, timer_close:null, interval_ping:10000, interval_close:5000, init:function(callback){ var self=this; Message({ type:'success', message: '扫描程序正在启动,请稍后……' }) self.ws= new WebSocket(self.url); self.ws.onopen = function(evt) { // console.log("Connection open ..."); self.is_onlien=true; self.ws.send("client connect success"); start_heartbeat(); }; self.ws.onmessage = function(evt) { console.log("打印扫描仪返回的evt: " +evt.data); if(evt.data=="ping"){ self.send("pong"); // console.log("on ping"); } else if(evt.data=="pong"){ // console.log("on pong"); } else{ // console.log( "Received Message: " + evt.data); let objectData=JSON.parse(evt.data); console.log("扫描仪返回的数据",objectData); if (objectData.Data) { let obj=JSON.parse(objectData.Data.data_string); console.log("打印返回的图片地址",obj); // let obj={ // code:200, // data:objectData.entity.fi_full_name, // msg:'图片扫描成功', // }; // callback(obj);// 通过回调函数返回图片地址 } if (objectData.code === 509) { // Message({ // type: 'error', // message: '服务器错误,请检查日志' // }) } else if (JSON.parse(evt.data).code === 502) { Message({ type: 'error', message: '未检测到纸张或卡纸' }) self.ws.close();//关闭链接 } else if (JSON.parse(evt.data).code === 200) { Message({ type: 'success', message: '扫描仪启动成功!' }) } } clearTimeout(self.timer_close); clearTimeout(self.timer_ping); start_heartbeat(); }; self.ws.onclose = function(evt) { console.log("连接关闭"); }; self.ws.onerror=function(evt){ console.log(evt); }; //心跳检测 function start_heartbeat(){ self.timer_ping=setTimeout(function(){ self.send("ping");//发送一次 "ping" 消息给服务器。 //设置关闭定时器,如果超过 self.interval_close 毫秒没有收到服务器的响应,则认为连接已经断开,关闭 WebSocket 连接。 self.timer_close=setTimeout(function(){ self.ws.close(); self.is_online=false; on_offline();//处理离线逻辑方法 },self.interval_close); },self.interval_ping);//每隔 self.interval_ping 毫秒 } //离线处理逻辑 function on_offline(){ } }, send:function(data){ if (this.ws.readyState === this.ws.OPEN) { console.log("发送数据:" + data); this.ws.send(data); } else { Message({ type: 'error', message: '请确认扫描客户端是否已经启动', duration: 5000 }); } // console.log("发送数据:"+data); // try { // this.ws.send(data); // } catch(e) { // Message({ // type: 'error', // message: '请确认扫描客户端是否已经启动' // }) // } }, } export default wsc2