Dweb:使用WebRTC / WebTorrent构建弹性Web

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/81916861 ...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/81916861

640?wx_fmt=jpeg


本文来自WebTorrent的创始人、PeerCDN联合创始人Feross Aboukhadijeh,他介绍了一种基于WebRTC通信的Web协议WebTorrent,通过WebTorrent可以节省服务器资源,降低成本。LiveVideoStack对原文进行了摘译。


文 / Feross Aboukhadijeh

译 / 元宝

审校 / Ant

原文:

https://hacks.mozilla.org/2018/08/dweb-building-a-resilient-web-with-webtorrent/


WebTorrent是一种在Web浏览器中运行的BitTorrent协议的实现。这种服务文件的方法意味着,网站可以与尽可能多的用户进行扩展,同时浏览网站,从而消除在数据中心运行集中服务器的成本。本文由Feross Aboukhadijeh撰写,他是WebTorrent的创始人和PeerCDN的联合创始人,也是一位多产的NPM模块作者......最终统计有225个模块!-Dietrich Ayala


什么是WebTorrent?


WebTorrent是第一个在浏览器中工作的种子客户端。它完全由JavaScript编写,并使用WebRTC进行真正的点对点传输。无需浏览器插件,扩展或安装。


使用开放式Web标准,WebTorrent将网站用户连接在一起,形成分布式的和分散式的浏览器到浏览器网络,以实现高效的文件传输。使用基于WebTorrent的网站的人越多,它就越快,越有弹性。


640?wx_fmt=png

架构


WebTorrent协议就像BitTorrent协议一样,除了它使用的是WebRTC而不是TCP或uTP作为传输协议。


为了支持WebRTC的连接模型,我们对跟踪器协议进行了一些更改。因此,基于浏览器的WebTorrent客户端或“web peer”只能连接到支持WebTorrent / WebRTC的其他客户端。


一旦连接对等体后,用于通信的有线协议与正常的BitTorrent就完全相同。这应该使现有流行的torrent客户端如Transmission和uTorrent更容易添加对WebTorrent的支持。Vuze已经支持WebTorrent了!


640?wx_fmt=png


入门


只需几行代码即可在浏览器中下载torrent!


要开始使用WebTorrent,只需在页面上包含webtorrent.min.js脚本即可。你可以从WebTorrent网站下载脚本或链接到CDN副本。


 
  

<script src="webtorrent.min.js"></script>


这为窗口对象提供了一个WebTorrent函数。还有一个npm包可用。


 
  

var client = new WebTorrent()

// Sintel, a free, Creative Commons movie
var torrentId = 'magnet:...' // Real torrent ids are much longer.

var torrent = client.add(torrentId)

torrent.on('ready', () => {
// Torrents can contain many files. Let's use the .mp4 file
var file = torrent.files.find(file => file.name.endsWith('.mp4'))

// Display the file by adding it to the DOM.
// Supports video, audio, image files, and more!
file.appendTo('body')
})


就是这样的!现在,你将看到BT流进入到标签为<video width="300" height="150">的网页中!


更多


你可以浏览webtorrent.io或者在Freenode IRC或Gitter上的#webtorrent中提问来了解更多信息。我们正在寻找更多能够在GitHub问题跟踪器上回答问题并帮助解决问题的人。如果你是一个友善,乐于助人的人,并想乘机深入挖掘洪流协议或WebRTC,那么这就是你的机会!



640?wx_fmt=jpeg

相关文章
|
17天前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
|
17天前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
1天前
|
存储 中间件 Go
探索Gin框架:快速构建高性能的Golang Web应用
探索Gin框架:快速构建高性能的Golang Web应用
|
1天前
|
前端开发 JavaScript Java
前端与后端:构建现代Web应用的双翼
前端与后端:构建现代Web应用的双翼
|
11天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。
|
15天前
|
JavaScript 前端开发 API
Vue.js:构建高效且灵活的Web应用的利器
Vue.js:构建高效且灵活的Web应用的利器
|
22天前
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox与Grid布局的深度对比
【4月更文挑战第4天】 在现代前端开发中,构建灵活且响应式的用户界面是至关重要的。随着移动设备浏览量的增加,能够适应不同屏幕尺寸和分辨率的布局技术变得必不可少。Flexbox和Grid是CSS提供的两种强大的布局机制,它们各自以独特的方式解决了响应式设计的挑战。本文将深入探讨Flexbox和Grid的核心概念、使用场景和性能考量,为开发者提供在面对不同布局需求时做出明智选择的依据。
|
1月前
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox的力量
【2月更文挑战第28天】 在现代网页设计中,创建能在不同设备上保持一致性和功能性的响应式界面是至关重要的。Flexbox,一个CSS布局模块,为前端开发者提供了强大工具来轻松实现灵活的布局设计。本文将深入探讨Flexbox的核心概念、使用场景以及如何通过它来优化响应式设计流程。
|
1月前
|
前端开发 开发者 UED
构建响应式Web界面:Flexbox与Grid布局的深度解析
【2月更文挑战第28天】 在现代前端开发中,打造灵活且适应不同屏幕尺寸的用户界面是至关重要的。随着移动设备的普及,响应式设计已经成为网页制作不可或缺的一部分。本文将深入探讨两种强大的CSS布局模块——Flexbox和Grid,它们如何简化布局创建过程,并赋予设计师更大的灵活性去构建动态和流畅的响应式界面。通过对这两种技术的比较、使用场景分析以及代码示例,读者将能够更好地理解何时以及如何使用这些工具来提升前端项目的质量和效率。
18 0
|
1月前
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox布局的全面指南
【2月更文挑战第28天】 在当今多变的设备屏幕尺寸和分辨率中,创建一个能够适应不同视口的响应式Web界面至关重要。本文深入探讨了CSS Flexbox布局模块,它是一种设计灵活且强大的方式来创建复杂的响应式布局。我们将透过概念解析、关键属性讲解以及实际案例分析,帮助前端开发者掌握Flexbox的核心原理和应用技巧,以实现流畅的页面布局调整和优化用户体验。