Lightweight library providing peer to peer CDN functionality
Want to contribute ? Feel free to send pull requests!
Have problems, bugs, feature ideas? We are using the github issue tracker to manage them.
For documentation (including examples), visit rafallorenz.com/peer-cdn
🚏 HOW TO USE
$ npm install peer-cdn
"use strict";;if "serviceWorker" in navigator// since sw does not support WebRTC yet// this is workaround to use it// we use PeerPlugin on client sideconst peerPlugin =cacheName: CachePluginpeerFetch + 1timeoutAfter: 3000servers:iceServers:url: "stun:220.127.116.11:19302"constraints:ordered: true;// Set up a listener for messages posted from the service worker.// The service worker is set to post a message to specific client only// so you should see this message event fire once.// You can force it to fire again by visiting this page in an Incognito window.navigatorserviceWorker;navigatorserviceWorker;
// import peer-cdn into service workerself;const CachePlugin DelegatePlugin NetworkPlugin strategies: ordered = PeerCDN;const cachePlugin = version: 1 ;// since sw does not support WebRTC yet we use PeerPlugin on client side// and we delegate request to it with DelegatePluginconst delegatePlugin = timeoutAfter: 5000 ;const networkPlugin = ;const cdn = ;cdn;// We need to register service worker events// cdn.register() will add listeners for install, activate and fetch// gaining required controlcdn;
This package is released under the MIT license. See the complete license in the package