|
@@ -1,6 +1,6 @@
|
|
-self.importScripts("helper.js");
|
|
|
|
|
|
+self.importScripts('helper.js');
|
|
var parameters = GetRequest();
|
|
var parameters = GetRequest();
|
|
-var cardToken = parameters["cardToken"];
|
|
|
|
|
|
+var cardToken = parameters['cardToken'];
|
|
cardToken = cardToken && decodeURIComponent(cardToken);
|
|
cardToken = cardToken && decodeURIComponent(cardToken);
|
|
var errorTime = 0;
|
|
var errorTime = 0;
|
|
var socketURL = decodeURIComponent(parameters['socketURL']);
|
|
var socketURL = decodeURIComponent(parameters['socketURL']);
|
|
@@ -9,10 +9,10 @@ doConnect();
|
|
|
|
|
|
function throttle(fn, delay) {
|
|
function throttle(fn, delay) {
|
|
var flag = true;
|
|
var flag = true;
|
|
- errorTime += delay;
|
|
|
|
return () => {
|
|
return () => {
|
|
if (!flag) return;
|
|
if (!flag) return;
|
|
flag = false;
|
|
flag = false;
|
|
|
|
+ errorTime += delay;
|
|
timer = setTimeout(() => {
|
|
timer = setTimeout(() => {
|
|
fn();
|
|
fn();
|
|
flag = true;
|
|
flag = true;
|
|
@@ -25,24 +25,29 @@ function doConnect() {
|
|
ws.binaryType = 'arraybuffer';
|
|
ws.binaryType = 'arraybuffer';
|
|
intervaler = setInterval(() => {
|
|
intervaler = setInterval(() => {
|
|
if (ws.readyState === 1) {
|
|
if (ws.readyState === 1) {
|
|
- ws.send("ping");
|
|
|
|
|
|
+ ws.send('ping');
|
|
} else {
|
|
} else {
|
|
clearInterval(intervaler);
|
|
clearInterval(intervaler);
|
|
self.postMessage('close');
|
|
self.postMessage('close');
|
|
}
|
|
}
|
|
}, 3000);
|
|
}, 3000);
|
|
ws.onerror = function () {
|
|
ws.onerror = function () {
|
|
- ws.close();
|
|
|
|
- clearInterval(intervaler);
|
|
|
|
- throttle(doConnect, 100);
|
|
|
|
- if (errorTime > 1000) {
|
|
|
|
- self.postMessage('close');
|
|
|
|
|
|
+ ws.close(1006);
|
|
|
|
+ };
|
|
|
|
+ ws.addEventListener('close', function (e) {
|
|
|
|
+ if (e.code === 1006) {
|
|
|
|
+ clearInterval(intervaler);
|
|
|
|
+ throttle(doConnect, 100);
|
|
|
|
+ if (errorTime > 1000) {
|
|
|
|
+ self.postMessage('close');
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ });
|
|
|
|
|
|
ws.addEventListener('open', function (event) {
|
|
ws.addEventListener('open', function (event) {
|
|
var verifyBuffer = VerifyCode('RK3923C1201900139', cardToken);
|
|
var verifyBuffer = VerifyCode('RK3923C1201900139', cardToken);
|
|
ws.send(verifyBuffer);
|
|
ws.send(verifyBuffer);
|
|
|
|
+ errorTime = 0;
|
|
});
|
|
});
|
|
|
|
|
|
ws.addEventListener('message', function (event) {
|
|
ws.addEventListener('message', function (event) {
|
|
@@ -54,24 +59,28 @@ function doConnect() {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
- self.addEventListener('message', function (e) {
|
|
|
|
- if (e === 'close') {
|
|
|
|
- clearInterval(intervaler);
|
|
|
|
- ws.close();
|
|
|
|
- } else {
|
|
|
|
- ws.send(e.data);
|
|
|
|
- }
|
|
|
|
- }, false);
|
|
|
|
|
|
+ self.addEventListener(
|
|
|
|
+ 'message',
|
|
|
|
+ function (e) {
|
|
|
|
+ if (e === 'close') {
|
|
|
|
+ clearInterval(intervaler);
|
|
|
|
+ ws.close();
|
|
|
|
+ } else {
|
|
|
|
+ ws.send(e.data);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ false,
|
|
|
|
+ );
|
|
}
|
|
}
|
|
|
|
|
|
function GetRequest() {
|
|
function GetRequest() {
|
|
var url = location.search; // 获取url中"?"符后的字串
|
|
var url = location.search; // 获取url中"?"符后的字串
|
|
var obj = new Object();
|
|
var obj = new Object();
|
|
- if (url.indexOf("?") != -1) {
|
|
|
|
|
|
+ if (url.indexOf('?') != -1) {
|
|
var str = url.substr(1);
|
|
var str = url.substr(1);
|
|
- strs = str.split("&");
|
|
|
|
|
|
+ strs = str.split('&');
|
|
for (var i = 0; i < strs.length; i++) {
|
|
for (var i = 0; i < strs.length; i++) {
|
|
- obj[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
|
|
|
|
|
|
+ obj[strs[i].split('=')[0]] = strs[i].split('=')[1];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return obj;
|
|
return obj;
|