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

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

什么是WebTorrent?

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

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

架构

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

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

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

入门

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

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

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

varclient=newWebTorrent()//Sintel,afree,CreativeCommonsmovievartorrentId='magnet:...'//Realtorrentidsaremuchlonger.vartorrent=client.add(torrentId)torrent.on('ready',()=>{//Torrentscancontainmanyfiles.Let'susethe.mp4filevarfile=torrent.files.find(file=>file.name.endsWith('.mp4'))//DisplaythefilebyaddingittotheDOM.//Supportsvideo,audio,imagefiles,andmore!file.appendTo('body')})

就是这样的!现在,你将看到BT流进入到标签为的网页中!

更多

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

webrtc在服务器端通信协议,一种基于WebRTC通信的Web协议WebTorrent相关推荐

  1. html5 视频语音对讲,一种基于WebRTC的多人语音视频通话方法及系统与流程

    本发明涉及视频通话领域,特别涉及一种基于WebRTC的多人语音视频通话方法及系统. 背景技术: 随着互联网技术和通信技术的快速发展,人们的交流方式与交流内容得到了极大的丰富和发展.在节奏越来越快的信息 ...

  2. bim 模型web页面展示_一种基于BIM模型的Web端轻量化展示方法与流程

    本发明涉及基坑结构模型技术领域,尤其涉及一种基于bim模型的web端轻量化展示方法. 背景技术: 建筑信息模型(buildinginformationmodeling,bim)技术在土木工程领域快速推 ...

  3. webrtc在服务器端通信协议,WebRTC 是如何进行通信的,WebRCT 的三种网络结构

    WebRTC旨在通过其浏览器(也称为P2P)在客户端之间直接发送媒体流.在P2P架构中,客户端建立通信之前,首先需要建立到应用服务器(有时也成为信令服务器)的信令连接.而 WebRTC规范中没有规定信 ...

  4. android同服务器端互动,一种基于Android平台的多屏互动系统设计

    多屏互动是指各种不同智能设备可以互相将多媒体资源推送到屏幕中并且播放的技术.局域网智能设备可以实现资源的互通互联和共享,同时也可以扩大局域网的智能设备到广域网中,实现三网融合方案,并能实现互通互联在网 ...

  5. 【计算机研究与发展】一种基于区块链的泛用型数据隐私保护的安全多方计算协议——CCF A

    一种基于区块链的泛用型数据隐私保护的安全多方计算协议 刘峰1,3,杨杰3,李志斌 2*,齐佳音3* (1华东师范大学 计算机科学与技术学院,上海,200062: 2华东师范大学 数据科学与工程学院,上 ...

  6. 基于串口通信的DSP应用程序在线升级方法

    摘  要:为解决特殊场合DSP程序升级困难的问题,以TMS320F28035为例,介绍了一种基于串口通信的适合于TMS320C2000系列DSP实现程序更新的在线升级方法.描述了该在线升级方法的基本思 ...

  7. 从入门到进阶|如何基于WebRTC搭建一个视频会议

    文|网易智慧企业流媒体服务器天团 导读:疫情期间,视频会议等远程办公产品备受青睐,众多互联网玩家切入视频会议市场,加剧市场竞争.但是,产品虽多,能够带来稳定可靠体验的产品却凤毛麟角,它的难点在哪里?视 ...

  8. 基于WebRTC的互动直播实践

    互动直播已经逐渐成为直播的主要形式.映客直播资深音视频工程师叶峰峰在LiveVideoStackCon 2018大会的演讲中详细介绍了INKE自研连麦整体设计思路.如何基于WebRTC搭建互动直播SD ...

  9. 基于webrtc多人音视频的研究(一)

    所周知,WebRTC非常适合点对点(即一对一)的音视频会话.然而,当我们的客户要求超越一对一,即一对多.多对一设置多对多的解决方案或者服务,那么问题就来了:"我们应该采用什么样的架构?&qu ...

最新文章

  1. 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc
  2. 感知和行动的贝叶斯模型
  3. libevent中的基本数据结构
  4. IntelliJ IDEA安装主题详细步骤
  5. 【Flutter】Icons 组件 ( 加载 Flutter 内置的图标 | 材料设计图标完整展示 )
  6. 生产者与消费者(二)---await与 signal
  7. java获取下周一整周的日期_当前日期得到本周的开始和结束日期
  8. 移动端小程序 腾讯地图sdk 当前位置 地址你解析 距离计算
  9. jQuery+AJAX+PHP+MySQL数据库开发搜索功能,无跳转无刷新搜索。
  10. Mac上http/POST/PUT/GET/DELETE请求工具-ApiPost Client for Mac 2.0.2.dmg
  11. Java软件开发中,常用的工具有哪些?
  12. nodejs基础整理
  13. 最大乘积java_在Java中查找负数的最大乘积
  14. 请问smartadmin中如何只用其treeview 组件?
  15. BackgroundWorker使用总结
  16. web前端常见面试题
  17. 今年,我只赚了一点点
  18. 都要2023年了,Android开发是否还值得入场?
  19. 软件工程Alpha冲刺day2
  20. 扔硬币先手获胜概率问题

热门文章

  1. 一次学神and农夫and“i春秋”的心理交锋
  2. leetcode17题 电话号码的字母组合
  3. 算一下你来到这个世界多少天?
  4. windows下通过关键字批量删除远程k8s下deployment及pods
  5. .net core 处理base64图片
  6. 为什么一群人之中,蚊子就“盯”着你?为你揭秘“蚊子”的真相!
  7. 一眼“看穿破绽”,3D视觉成锂电池“智造”降本增效利器
  8. GEE|时间序列分析(三)
  9. centos7配置时间同步
  10. 自制免费防关联浏览器,免费指纹浏览器的解决方案