New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

peardownloader

Package Overview
Dependencies
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

peardownloader

  PearPlayer.js

  • 0.0.1
  • npm
  • Socket score

Version published
Weekly downloads
54
decreased by-41.94%
Maintainers
1
Weekly downloads
 
Created
Source

 
PearPlayer.js

一个支持多协议、多源、混合P2P-CDN的下载器

PearDownloader(梨享下载器) 是完全用JavaScript写的开源文件下载器, 实现了融合HTTP(包含HTTPS、HTTP2)、WebRTC的多协议、多源、低延迟、高带宽利用率的无插件Web端下载加速能力。 基于高效的调度算法将来自多个节点的数据进行拼接形成完整的文件, PearDownloader能在保证下载速度前提下最大化P2P率。


![multisources](fig/fogvdn_multisources.png)

只需将pear-downloader.min.js通过<script>标签导入到HTML就可以使用。 参考以下代码示例,也可以查看/examples/download.html来了解使用方法。

信令部分以及WebRTC部分使用了精心设计的协议,实现此部分可以参考API文档

特性

  • P2P能力基于WebRTC,无须安装任何插件
  • 下载快速,严格测试,稳定可靠
  • 多协议(HTTP、HTTPS、WebRTC)、多源
  • 自行研发的调度算法,在保证下载速度的前提下最大化P2P率
  • 默认无需填参数(内部根据文件属性作自适应),高级使用模式可自行调整算法和参数
  • 支持Chrome、Firefox、Opera等主流浏览器,不久将支持腾讯微信、X5/TBS、Safari
  • 可选接入低成本、高可用性的Pear FogVDN
  • 协议默认通过TLS/DTLS全加密,无DPI特征;并可通过Pear Fog组件的动态端口映射进一步消除统计学特征
  • 目前已实现Browser P2P能力(基于webtorrent)

Demo演示地址:https://qq.webrtc.win/downloader

使用方法

导入js文件并绑定video标签

首先通过script标签导入pear-downloader.min.js:

<script src="./dist/pear-downloader.min.js"></script>

或者使用CDN:

假设要下载(/tv/pear001.mp4)这个视频,只需要如下几行代码:

<script>
/**
 * 第一个参数为文件的url
 * 第二个参数为获得授权后的token
 * opts是可选的参数配置
 */
var player = new PearDownloader('/tv/pear001.mp4', token, opts);
</script>

恭喜您,您的播放器已经具备P2P能力了,而且无须任何插件!

获取token

在使用PearPlayer之前,需要获取token,通过调用提供的API接口(/v1/customer/login)并传入用户名和密码, 这里已经为访客提供了测试帐号(用户名:test 密码:123456),获取token的示例代码如下:

var xhr = new XMLHttpRequest();
xhr.open("POST", 'https://api.webrtc.win:6601/v1/customer/login');
var data = JSON.stringify({
    user:'demo',
    password:'demo'
});
xhr.onload = function () {
    if (this.status >= 200 && this.status < 300) {
        var res = JSON.parse(this.response);
        if (!!res.token){
            console.log('token:' +res.token);
        }
    } else {
        alert('请求出错!');
    }
};
xhr.send(data);

谁在用我们的产品?

Pear Player 文档

致谢

特别感谢以下项目,为本项目提供了部分灵感来源以及API设计参考:

演讲与媒体报道

  • 2017.07.11 (OSChina开源中国) - PearPlayer.js —— 混合P2P-CDN的流媒体播放器
  • 2017.06.24 (腾讯Web前端大会) - 基于WebRTC的P2P-CDN流媒体加速
  • 2017.05.17 (南方科技大学) - Edge Computing and Shared Fog Streaming
  • 2017.05.08 (台湾逢甲大学) - A Cooler Fruit Venture: Scaling up a Network from Cloud to Fog with Crowdsourcing
  • 2016.08.17 (香港科技大学) - From Cloud to Fog: Scaling up a Network with Crowdsourcing

License

MIT. Copyright (c) Pear Limited and snowinszu.

帮助与支持

E-mail: service@pear.hk;用户QQ群:373594967CP/CDN接入、OEM与其他商务合作

Keywords

FAQs

Package last updated on 02 Aug 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc