Update Download func (but it doesn't work yet)
This commit is contained in:
124
service.js
124
service.js
@@ -79,81 +79,89 @@ async function ping() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function sleep(ms) {
|
||||||
|
return new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
}
|
||||||
|
|
||||||
async function download(multiConnection) {
|
async function download(multiConnection) {
|
||||||
return new Promise(resolve => {
|
// return new Promise(resolve => {
|
||||||
var totalStartTime = 0;
|
var startTime = 0;
|
||||||
requests = [];
|
var requests = {"status":[], "speed":[], "requests":[]};
|
||||||
requestsHelper = [];
|
|
||||||
function temp(i){
|
for(var i = 0; i < multiConnection; i++){
|
||||||
setTimeout(
|
var tmpReq = new XMLHttpRequest();
|
||||||
function() {
|
tmpReq.open("GET", serverDUrl + "?_=" + Math.random(), true);
|
||||||
var startTime = 0;
|
tmpReq.onreadystatechange = function() {
|
||||||
requests[i] = new XMLHttpRequest();
|
if(status == "stop"){
|
||||||
requestsHelper[i] = [];
|
tmpReq.abort();
|
||||||
requestsHelper[i].done = false;
|
requests['status'][i] = "stoped";
|
||||||
requests[i].open("GET", serverDUrl + "?_=" + Math.random(), true);
|
}
|
||||||
requests[i].onreadystatechange = function() {
|
if (tmpReq.readyState === 4) {
|
||||||
if (requests[i].readyState === 4 && requests[i].status === 200) {
|
if(tmpReq.status !== 200) console.log(tmpReq.status);
|
||||||
var endTime = new Date().getTime();
|
var endTime = new Date().getTime();
|
||||||
var reqLength = requests[i].responseText.length * 8;
|
var reqLength = tmpReq.responseText.length * 8;
|
||||||
var sumTime = (endTime - startTime) / 1000;
|
var sumTime = (endTime - startTime) / 1000;
|
||||||
var speed = (((reqLength / sumTime) / 1024 /* Kbps */ ) / 1024 /* Mbps */ ).toFixed(2);
|
var speed = (((reqLength / sumTime) / 1024 /* Kbps */) / 1024 /* Mbps */).toFixed(2);
|
||||||
|
|
||||||
requestsHelper[i].speed = speed;
|
requests['status'][i] = "done";
|
||||||
requestsHelper[i].sumTime = sumTime;
|
requests['speed'][i] = speed;
|
||||||
requestsHelper[i].done = true;
|
}
|
||||||
alert("request " + i + " done.");
|
};
|
||||||
}
|
tmpReq.onprogress = function() {
|
||||||
};
|
if(status == "stop"){
|
||||||
requests[i].onprogress = function() {
|
tmpReq.abort();
|
||||||
if (status == "stop") {
|
requests['status'][i] = "stoped";
|
||||||
requests[i].abort();
|
}
|
||||||
}
|
|
||||||
|
var endTime = new Date().getTime();
|
||||||
|
var reqLength = tmpReq.responseText.length * 8;
|
||||||
|
var sumTime = (endTime - startTime) / 1000;
|
||||||
|
var speed = (((reqLength / sumTime) / 1024 /* Kbps */) / 1024 /* Mbps */).toFixed(2);
|
||||||
|
|
||||||
|
requests['status'][i] = "progress";
|
||||||
|
requests['speed'][i] = speed;
|
||||||
|
};
|
||||||
|
|
||||||
var endTime = new Date().getTime();
|
requests['status'][i] = "start";
|
||||||
var reqLength = requests[i].responseText.length * 8;
|
requests['speed'][i] = "0";
|
||||||
var sumTime = (endTime - startTime) / 1000;
|
requests['requests'][i] = tmpReq;
|
||||||
var speed = (((reqLength / sumTime) / 1024 /* Kbps */ ) / 1024 /* Mbps */ ).toFixed(2);
|
}
|
||||||
|
|
||||||
requestsHelper[i].speed = speed;
|
startTime = new Date().getTime();
|
||||||
requestsHelper[i].sumTime = sumTime;
|
for(var i = 0; i < multiConnection; i++){
|
||||||
};
|
try {
|
||||||
try {
|
requests['requests'][i].send(null);
|
||||||
startTime = new Date().getTime();
|
}
|
||||||
requests[i].send(null);
|
catch(exception) {
|
||||||
} catch (exception) {
|
alert("Your internet connection is unavelible...");
|
||||||
alert("Your internet connection is unavelible...");
|
}
|
||||||
}
|
|
||||||
},
|
|
||||||
1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
totalStartTime = new Date().getTime();
|
|
||||||
for (var i = 0; i < multiConnection; i++) {
|
|
||||||
temp(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
while(true){
|
while(true){
|
||||||
|
await sleep(100);
|
||||||
|
|
||||||
done = true;
|
done = true;
|
||||||
var tmpTotalSpeed = 0;
|
var tmpTotalSpeed = 0;
|
||||||
requestsHelper.forEach(function (request){
|
for(var i = 0; i < multiConnection; i++){
|
||||||
if(done && !request.done) done = false;
|
if(done && requests['status'][i] != "done")
|
||||||
tmpTotalSpeed += request.speed
|
done = false;
|
||||||
});
|
|
||||||
|
tmpTotalSpeed += requests['speed'][i];
|
||||||
|
}
|
||||||
|
|
||||||
var totalEndTime = new Date().getTime();
|
var totalEndTime = new Date().getTime();
|
||||||
var totalSpeed = tmpTotalSpeed / multiConnection;
|
var totalSpeed = tmpTotalSpeed / multiConnection;
|
||||||
var totalSumTime = (totalEndTime - totalStartTime) / 1000;
|
var totalSumTime = (totalEndTime - startTime) / 1000;
|
||||||
|
|
||||||
if(done){
|
if(done){
|
||||||
resolve(totalSpeed + " Mbps (" + totalSumTime + " s)");
|
return /*resolve*/(totalSpeed + " Mbps (" + totalSumTime + " s)");
|
||||||
return;
|
// return;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
setText("down", totalSpeed + " Mbps (" + totalSumTime + " s)");
|
setText("down", totalSpeed + " Mbps (" + totalSumTime + " s)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
function junkData(length) {
|
function junkData(length) {
|
||||||
|
|||||||
Reference in New Issue
Block a user