Commit 7e26c76b authored by Skye Yu's avatar Skye Yu

Merge branch 'dev' of http://gitlab.sugrsugr.com/skye/jensen into dev

parents 7bedd67c 0d03a67e
...@@ -315,17 +315,38 @@ function Jensen(log) { ...@@ -315,17 +315,38 @@ function Jensen(log) {
// 做一个回调,怎么样找到它呢? // 做一个回调,怎么样找到它呢?
blocks.push(result.data); blocks.push(result.data);
tryReceive(); tryReceive();
if (self.decodeTimeout) clearTimeout(self.decodeTimeout); tryDecode();
self.decodeTimeout = setTimeout(function () { if (self.onreceive) {
tryDecode();
}, self.timewait);
if (self.onreceive)
try { try {
self.onreceive(totalBytes, result.data); self.onreceive(totalBytes);
} catch (e) { } catch (e) {
} }
} else {
// if (self.decodeTimeout) clearTimeout(self.decodeTimeout);
// self.decodeTimeout = setTimeout(function () {
// tryDecode();
// }, self.timewait);
}
}; };
// 持续解码
const continueDecode = (block) => {
const buff = new ArrayBuffer(RECV_BUFF_SIZE * 2);
let bview = new Uint8Array(buff);
for (let k = 0; k < block.byteLength; k++) {
bview[k] = block.getInt8(k);
}
let result = null;
try {
result = decodeMessage(bview, 0, block.byteLength);
} catch (err) {
console.error('ci decode', err);
}
sendNext();
const msg = result.message;
return result && msg.id === TRANSFER_FILE ? msg.body : null;
}
const tryDecode = function () { const tryDecode = function () {
// 一个容器,比单独任意一个小包要大一点儿,好像还差一点儿 // 一个容器,比单独任意一个小包要大一点儿,好像还差一点儿
let stime = new Date(); let stime = new Date();
...@@ -769,7 +790,7 @@ Jensen.prototype.getFile = async function (filename, length, ondata, onprogress) ...@@ -769,7 +790,7 @@ Jensen.prototype.getFile = async function (filename, length, ondata, onprogress)
} }
}; };
this.onreceive = onprogress; this.onreceive = onprogress;
Jensen.registerHandler(TRANSFER_FILE, handler); Jensen.registerHandler(TRANSFER_FILE, handler);
this.send(new Command(TRANSFER_FILE).body(fname)); this.send(new Command(TRANSFER_FILE).body(fname));
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment