123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- self.importScripts("helper.js");
- var parameters = GetRequest();
- var ip = parameters["ip"];
- var appletPushAddress = parameters["appletPushAddress"];
- var isWSS = true;
- var errorTime = 0;
- var socketURL = isWSS ? "wss://" + appletPushAddress + "?cardIp=" + ip : "ws://" + appletPushAddress + "?cardIp=" + ip;
- doConnect();
- function throttle(fn, delay) {
- var flag = true;
- errorTime += delay;
- return () => {
- if (!flag) return;
- flag = false;
- timer = setTimeout(() => {
- fn();
- flag = true;
- }, delay);
- };
- }
- function doConnect() {
- var ws = new WebSocket(socketURL);
- ws.binaryType = 'arraybuffer';
- ws.onclose = function () {
- ws.close();
- throttle(doConnect, 100);
- if (errorTime > 1000) {
- self.postMessage('close');
- }
- }
- ws.onerror = function () {
- ws.close();
- throttle(doConnect, 100);
- if (errorTime > 1000) {
- self.postMessage('close');
- }
- }
- ws.addEventListener('open', function (event) {
- ws.send(ConfigChannel("RK3923C1201900139"));
- var checkBuffer = GetScreenState();
- ws.send(checkBuffer);
- });
- ws.addEventListener('message', function (event) {
- var input = new Uint8Array(event.data);
- ws.send('ping');
- if (input[0] == 0xff) {
- self.postMessage(input);
- } else {
- self.postMessage(input);
- }
- });
- self.addEventListener('message', function (e) {
- ws.send(e.data);
- ws.send('ping');
- }, false);
- }
- function GetRequest() {
- var url = location.search; // 获取url中"?"符后的字串
- var obj = new Object();
- if (url.indexOf("?") != -1) {
- var str = url.substr(1);
- strs = str.split("&");
- for (var i = 0; i < strs.length; i++) {
- obj[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
- }
- }
- return obj;
- }
|