peer-cdn
Lightweight library providing peer to peer CDN functionality
📖 ABOUT
Contributors:
Want to contribute ? Feel free to send pull requests!
Have problems, bugs, feature ideas? We are using the github issue tracker to manage them.
📚 Documentation
For documentation (including examples), visit rafallorenz.com/peer-cdn
🚏 HOW TO USE
Installation
$ npm install peer-cdn
Basic example
main.js
"use strict"; ; if "serviceWorker" in navigator // since sw does not support WebRTC yet // this is workaround to use it // we use PeerPlugin on client side const peerPlugin = cacheName: CachePluginpeerFetch + 1 timeoutAfter: 3000 servers: iceServers: url: "stun:74.125.142.127: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 ;
sw.js
// 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;
License
📜This package is released under the MIT license. See the complete license in the package