Skip to content

Commit 79cad20

Browse files
committed
update
1 parent efec0a7 commit 79cad20

8 files changed

+75
-64
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ PearDownloader能在保证下载速度前提下最大化P2P率。
9393

9494
### 演讲与媒体报道
9595

96+
- 2018.02.07 (36氪) - [「Pear梨享」让雾计算落地,百万边缘节点的背后是提高效率和成本控制](http://36kr.com/p/5118296.html)
9697
- 2017.11.24 (金色财经) - [谛听科技正式进军区块链领域,战略投资梨享计算](http://www.jinse.com/blockchain/99767.html)
9798
- 2017.08.18 (IT大咖说) - [WebRTC会成主流吗?众包CDN时代到了!](http://mp.weixin.qq.com/s/cx_ljl2sexE0XkgliZfnmQ)
9899
- 2017.07.11 (OSChina开源中国) - [PearPlayer.js —— 混合P2P-CDN的流媒体播放器](https://www.oschina.net/p/PearPlayerjs)

dist/pear-downloader.js

+37-32
Original file line numberDiff line numberDiff line change
@@ -5754,8 +5754,8 @@ function objectToString(o) {
57545754
return Object.prototype.toString.call(o);
57555755
}
57565756

5757-
}).call(this,{"isBuffer":require("../../../../../../../../../usr/local/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
5758-
},{"../../../../../../../../../usr/local/lib/node_modules/browserify/node_modules/is-buffer/index.js":141}],45:[function(require,module,exports){
5757+
}).call(this,{"isBuffer":require("../../../../../../../../usr/local/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
5758+
},{"../../../../../../../../usr/local/lib/node_modules/browserify/node_modules/is-buffer/index.js":141}],45:[function(require,module,exports){
57595759
(function (process,global,Buffer){
57605760
module.exports = createTorrent
57615761
module.exports.parseInput = parseInput
@@ -14283,6 +14283,7 @@ Dispatcher.prototype._setupHttp = function (hd) {
1428314283
if (self._windowLength > 3) self._windowLength --;
1428414284
}
1428514285
self.checkoutDownloaders();
14286+
self.emit('httperror');
1428614287
});
1428714288
hd.on('data',function (buffer, start, end, speed) {
1428814289

@@ -14919,7 +14920,7 @@ HttpDownloader.prototype._getChunk = function (begin,end) {
1491914920
self._xhr = xhr;
1492014921
xhr.open("GET", self.uri);
1492114922
xhr.responseType = "arraybuffer";
14922-
xhr.timeout = 2000;
14923+
// xhr.timeout = 2000;
1492314924
self.startTime=(new Date()).getTime();
1492414925
// debug('get_file_index: start:'+begin+' end:'+end);
1492514926
var range = "bytes="+begin+"-"+end;
@@ -17589,41 +17590,41 @@ WebConn.prototype.destroy = function () {
1758917590
module.exports = NodeFilter;
1759017591

1759117592
/*
17592-
nodesArray: {uri: string type: string capacity: number}
17593-
cb: function
17594-
range: {start: number end: number}
17593+
nodesArray: {uri: string type: string capacity: number}
17594+
cb: function
17595+
range: {start: number end: number}
1759517596
*/
1759617597

1759717598
var debug = require('debug')('pear:node-filter');
1759817599

1759917600
function NodeFilter(nodesArray, cb, range) {
1760017601

17601-
// var ipArray = array.unique();
17602-
var doneCount = 0;
17603-
var usefulNodes = [];
17604-
var fileLength = 0;
17605-
if (!range) {
17606-
range = {
17607-
start: 0,
17608-
end: nodesArray.length
17609-
}
17610-
} else if (range.end > nodesArray.length) {
17611-
range.end = nodesArray.length;
17612-
}
17613-
17614-
for (var i=range.start;i<range.end;++i) {
17615-
17616-
try {
17617-
connectTest(nodesArray[i]);
17618-
} catch (e) {
17619-
// debug(nodesArray[i].uri + ':' + JSON.stringify(e))
17620-
}
17621-
}
17602+
cb(nodesArray, 0);
17603+
// var doneCount = 0;
17604+
// var usefulNodes = [];
17605+
// var fileLength = 0;
17606+
// if (!range) {
17607+
// range = {
17608+
// start: 0,
17609+
// end: nodesArray.length
17610+
// }
17611+
// } else if (range.end > nodesArray.length) {
17612+
// range.end = nodesArray.length;
17613+
// }
17614+
//
17615+
// for (var i=range.start;i<range.end;++i) {
17616+
//
17617+
// try {
17618+
// connectTest(nodesArray[i]);
17619+
// } catch (e) {
17620+
// // debug(nodesArray[i].uri + ':' + JSON.stringify(e))
17621+
// }
17622+
// }
1762217623

1762317624
function connectTest(node) {
1762417625

1762517626
var xhr = new XMLHttpRequest;
17626-
xhr.timeout = 1000;
17627+
xhr.timeout = 6000;
1762717628
xhr.open('head', node.uri);
1762817629
xhr.onload = function () {
1762917630
doneCount ++;
@@ -17663,8 +17664,8 @@ function NodeFilter(nodesArray, cb, range) {
1766317664
debug('node ' + i + ' capacity ' + usefulNodes[i].capacity);
1766417665
}
1766517666
debug('length: ' + usefulNodes.filter(function (node) {
17666-
return node.capacity >= 5;
17667-
}).length);
17667+
return node.capacity >= 5;
17668+
}).length);
1766817669

1766917670
cb(usefulNodes, fileLength);
1767017671
}
@@ -19062,6 +19063,7 @@ var Reporter = require('./reporter');
1906219063
// var WEBSOCKET_ADDR = 'ws://signal.webrtc.win:9600/ws'; //test
1906319064
var WEBSOCKET_ADDR = 'wss://signal.webrtc.win:7601/wss';
1906419065
var GETNODES_ADDR = 'https://api.webrtc.win:6601/v1/customer/nodes';
19066+
1906519067
var BLOCK_LENGTH = 32 * 1024;
1906619068

1906719069
inherits(Worker, EventEmitter);
@@ -19340,9 +19342,9 @@ Worker.prototype._getNodes = function (token, cb) {
1934019342
var length = nodes.length;
1934119343
debug('nodes:'+JSON.stringify(nodes));
1934219344

19343-
self._debugInfo.usefulHTTPAndHTTPS = length;
19345+
self._debugInfo.usefulHTTPAndHTTPS = self._debugInfo.totalHTTPS;
1934419346
if (length) {
19345-
self.fileLength = fileLength;
19347+
// self.fileLength = fileLength;
1934619348
// debug('nodeFilter fileLength:'+fileLength);
1934719349
// self.nodes = nodes;
1934819350
if (length <= 2) {
@@ -19710,6 +19712,9 @@ Worker.prototype._startPlaying = function (nodes) {
1971019712
self._debugInfo.windowOffset = windowOffset;
1971119713
self._debugInfo.windowLength = windowLength;
1971219714
});
19715+
d.on('httperror', function () {
19716+
self._debugInfo.usefulHTTPAndHTTPS --;
19717+
})
1971319718
};
1971419719

1971519720
function getBrowserRTC () {

dist/pear-downloader.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "peardownloader",
3-
"version": "1.1.14",
3+
"version": "1.1.15",
44
"description": "",
55
"main": "./dist/pear-downloader.js",
66
"dependencies": {

src/dispatcher.js

+1
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ Dispatcher.prototype._setupHttp = function (hd) {
464464
if (self._windowLength > 3) self._windowLength --;
465465
}
466466
self.checkoutDownloaders();
467+
self.emit('httperror');
467468
});
468469
hd.on('data',function (buffer, start, end, speed) {
469470

src/http-downloader.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ HttpDownloader.prototype._getChunk = function (begin,end) {
8383
self._xhr = xhr;
8484
xhr.open("GET", self.uri);
8585
xhr.responseType = "arraybuffer";
86-
xhr.timeout = 2000;
86+
// xhr.timeout = 2000;
8787
self.startTime=(new Date()).getTime();
8888
// debug('get_file_index: start:'+begin+' end:'+end);
8989
var range = "bytes="+begin+"-"+end;

src/node-filter.js

+27-27
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,41 @@
55
module.exports = NodeFilter;
66

77
/*
8-
nodesArray: {uri: string type: string capacity: number}
9-
cb: function
10-
range: {start: number end: number}
8+
nodesArray: {uri: string type: string capacity: number}
9+
cb: function
10+
range: {start: number end: number}
1111
*/
1212

1313
var debug = require('debug')('pear:node-filter');
1414

1515
function NodeFilter(nodesArray, cb, range) {
1616

17-
// var ipArray = array.unique();
18-
var doneCount = 0;
19-
var usefulNodes = [];
20-
var fileLength = 0;
21-
if (!range) {
22-
range = {
23-
start: 0,
24-
end: nodesArray.length
25-
}
26-
} else if (range.end > nodesArray.length) {
27-
range.end = nodesArray.length;
28-
}
29-
30-
for (var i=range.start;i<range.end;++i) {
31-
32-
try {
33-
connectTest(nodesArray[i]);
34-
} catch (e) {
35-
// debug(nodesArray[i].uri + ':' + JSON.stringify(e))
36-
}
37-
}
17+
cb(nodesArray, 0);
18+
// var doneCount = 0;
19+
// var usefulNodes = [];
20+
// var fileLength = 0;
21+
// if (!range) {
22+
// range = {
23+
// start: 0,
24+
// end: nodesArray.length
25+
// }
26+
// } else if (range.end > nodesArray.length) {
27+
// range.end = nodesArray.length;
28+
// }
29+
//
30+
// for (var i=range.start;i<range.end;++i) {
31+
//
32+
// try {
33+
// connectTest(nodesArray[i]);
34+
// } catch (e) {
35+
// // debug(nodesArray[i].uri + ':' + JSON.stringify(e))
36+
// }
37+
// }
3838

3939
function connectTest(node) {
4040

4141
var xhr = new XMLHttpRequest;
42-
xhr.timeout = 1000;
42+
xhr.timeout = 6000;
4343
xhr.open('head', node.uri);
4444
xhr.onload = function () {
4545
doneCount ++;
@@ -79,8 +79,8 @@ function NodeFilter(nodesArray, cb, range) {
7979
debug('node ' + i + ' capacity ' + usefulNodes[i].capacity);
8080
}
8181
debug('length: ' + usefulNodes.filter(function (node) {
82-
return node.capacity >= 5;
83-
}).length);
82+
return node.capacity >= 5;
83+
}).length);
8484

8585
cb(usefulNodes, fileLength);
8686
}

src/worker.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ var Reporter = require('./reporter');
2323
// var WEBSOCKET_ADDR = 'ws://signal.webrtc.win:9600/ws'; //test
2424
var WEBSOCKET_ADDR = 'wss://signal.webrtc.win:7601/wss';
2525
var GETNODES_ADDR = 'https://api.webrtc.win:6601/v1/customer/nodes';
26+
2627
var BLOCK_LENGTH = 32 * 1024;
2728

2829
inherits(Worker, EventEmitter);
@@ -301,9 +302,9 @@ Worker.prototype._getNodes = function (token, cb) {
301302
var length = nodes.length;
302303
debug('nodes:'+JSON.stringify(nodes));
303304

304-
self._debugInfo.usefulHTTPAndHTTPS = length;
305+
self._debugInfo.usefulHTTPAndHTTPS = self._debugInfo.totalHTTPS;
305306
if (length) {
306-
self.fileLength = fileLength;
307+
// self.fileLength = fileLength;
307308
// debug('nodeFilter fileLength:'+fileLength);
308309
// self.nodes = nodes;
309310
if (length <= 2) {
@@ -671,6 +672,9 @@ Worker.prototype._startPlaying = function (nodes) {
671672
self._debugInfo.windowOffset = windowOffset;
672673
self._debugInfo.windowLength = windowLength;
673674
});
675+
d.on('httperror', function () {
676+
self._debugInfo.usefulHTTPAndHTTPS --;
677+
})
674678
};
675679

676680
function getBrowserRTC () {

0 commit comments

Comments
 (0)