Michelle Bu与Eric Zhang在3月6日发布了PeerJS 0.1.7,它封装了WebRTC。后者是W3C倡议的旨在促进浏览器内P2P通信的一种技术。

尽管WebSocket的作用发展迅速,但PeerJS代表的是之前由服务器组织数据传输的方式有了根本性转变。

Bu说:“WebSocket和 WebRTC数据通道看起来一样——都支持二进制数据,还允许从一个客户端发送可能最终会到达另一客户端的任意数据,然而它们本质上是不同的。使用 WebRTC数据通道,可以向其他任何节点传送数据而无需经由某些中心服务器。以Facebook或Google聊天程序为例,向坐在旁边的人发送一条消 息需要相当多的时间。这是因为消息必须在物理上从你的计算机提交到需要路由50或60跳之远的Facebook服务器。从网络角度来看这非常不理想。理想 状态下,这个包应该仅传输20英尺——这正是WebRTC的工作方式。之前整个网络拓扑看起来像一个蜘蛛,而现在更像是一张网。”

拥抱这一新的生态系统吧!PeerJS旨在封装WebRTC规范的复杂性,使其成为一套易于理解的API。PeerJS的使用方式如下:

  • 使用版本号26或更高版本的Chrome。这意味着当前只有Canary或beta版本的浏览器可以使用。在接下来几个月,请留意WebRTC的浏览器兼容性更新。Bu预计在2到3个月内将支持与最新版本的Firefox进行互操作。
  • 建立一个节点服务器(PeerServer)。可以在代码托管网站注册,抓取代码自己构建,也可以在node.js上通过“npm install peer”命令安装。Bu说:“一旦连接到一个节点,就不再需要服务器了;除非想连接到更多的节点。”
  • 启动代码。看一下hello world例程,了解“PeerJS省去了很多麻烦,不需要构建和运行代理(brokering)服务器,不需要理解纷繁复杂的WebRTC节点连接和数据通道规范(那可是需要设置无数的处理程序),不需要考虑边界情况,也不需要应对不同浏览器之间的差异。”Bu说道。

由于WebRTC还在发展,除了少量聊天demo外,PeerJS在实践中的例子还很少。 PeerKit是一个例外,它是Zhang创建的、作为P2P CDN的新兴项目。Bu说:“想象一下这样的世界:猫的图片来自咖啡店里在你旁边恰好浏览同一网站的人,而不是内华达州的中心服务器”。

在浏览器之间,要在有状态的双向数据传输之上构建下一代应用,很可能还需要几年,但在此之前“WebRTC将是开发者的派对”,Bu这样说,“当考虑将所有状态都保存在客户端时,一定会有许多技术问题需要处理。”

转载于:https://www.cnblogs.com/shihao/archive/2013/03/28/2987757.html

PeerJS 0.1.7:一个用于浏览器内P2P的WebRTC封装器相关推荐

  1. 一个用于在浏览器上展示bim模型的vue插件

    wl-bim-viewer 一个用于在浏览器上展示bim模型的vue插件,可以预览转化后的BIM.CAD文件. 基于vue和autodesk forge viewer写成. 目前支持单模型加载及多模型 ...

  2. bim展示 java_一个用于在浏览器上展示bim模型的vue插件

    # wl-bim-viewer 一个用于在浏览器上展示bim模型的vue插件,可以预览转化后的CAD文件. 基于vue和autodesk forge viewer写成. 目前支持单模型加载及多模型顺序 ...

  3. 输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……

    输入一个字符串,内有数字和非数字字符,例如: A123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a[1]-- ...

  4. 输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876 将连续的数字作为一个整数,一次存放到一数组a中, 例如123存放在a[0]中,456放在a[1]中……

    /*输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876 将连续的数字作为一个整数,一次存放到一数组a中, 例如123存放在a[0]中,456放在a[1]中 ...

  5. 输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]...

    输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a[1]-统计 ...

  6. 【C】8.16输入一个字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876 ,将其中连续的数字作为一个整数,依次存放到一数组a中。例如:123放在a[0],456放在

    //输入一个字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876 //将其中连续的数字作为一个整数,依次存放到一数组a中. //例如:123放在a[0],456放在a ...

  7. 已知有一个名为MyServlet的程序,程序可向浏览器输出“Hello MyServlet”。请编写一个用于拦截MyServlet程序的MyFilter拦截器。

    1:题目详情: 已知有一个名为MyServlet的程序,程序可向浏览器输出"Hello MyServlet".请编写一个用于拦截MyServlet程序的MyFilter拦截器. 要 ...

  8. oracle bloom过滤,CSS_Oracle BLOOM过滤问题分析与解决,升入11.2.0.1遇到一个BLOOM过滤器 - phpStudy...

    Oracle BLOOM过滤问题分析与解决 升入11.2.0.1遇到一个BLOOM过滤器导致的问题. 系统里面发生大量死锁,但是这个ORA-60伴随着另一个错误ORA-10387 ORA-00060: ...

  9. GPS-Uber:一个用于预测一般和e3特异性赖氨酸泛素化位点的混合学习框架

    文章链接:https://academic.oup.com/bib/advance-article-abstract/doi/10.1093/bib/bbab574/6509047 DOI:10.10 ...

最新文章

  1. 从清洁工到斯坦福教授,一路开挂的她近日入选美国国家医学科学院!
  2. 谷歌为语言AI模型推TensorFlow.Text
  3. SQL Server-游标使用
  4. c++怎么做app_想开发一个类似于抖音短视频这样的APP大概多少钱?应该怎么做?...
  5. 使用while 循环实现输出 1, 2, 3, 4, 5, 7, 8, 9, 11, 12(提示:输出结果为一行,没有6和10,12后面没有逗号)
  6. 阿里云贾扬清:数据湖正成为企业数据应用创新标配
  7. idea 注释中 类 跳转_javaSE第一部分 数据类型、idea快捷键
  8. c++与java中文互转_java与C++中文字符的问题
  9. linux让新生成的文件自动加锁,Linux_实用技巧一则 Linux系统对文件进行加锁,当有多个工作线程要同时对一 - phpStudy...
  10. Eclipse快速导入继承类的方法
  11. 使用.NET Mobile API即51Degrees.mobi检测User-Agent
  12. 计算机操作系统--文件管理
  13. python键值对是什么意思_python键值对
  14. 另类网络推广-微博营销
  15. NAO机器人连接的电脑配置及用choregraphe控制nao行走
  16. UITT不忘初心,为交易而生
  17. 「产品速递」消防应急照明和疏散指示系统
  18. 一文带你了解什么是IP地址
  19. abacus 基本操作
  20. 广州2年php8k,2年后,那位月入3000月供3400的广州女孩,终于被我们找到了

热门文章

  1. 贷款机构如何审核个人征信?
  2. Snapshot Instance 操作详解 - 每天5分钟玩转 OpenStack(36)
  3. 台湾印象之一:金马奖之夜
  4. 为徐小斌、张悦然两篇小说写的推荐语
  5. .net 将html写成的table 转换成excel_Python读取二进制,HTML,XML格式存储Excel
  6. 服务器apache远程命令,Linux实例:用socket通讯远程执行命令
  7. php图片截取后缀,PHP抓取远程图片(含不带后缀的)教程详解
  8. 常用于评价回归模型优劣的统计量包括( )。_第四十一讲 R-判断回归模型性能的指标...
  9. java getxxx_java的invoke与getMethod方法用法
  10. 多GPU运行Deep Learning 和 并行Deep Learning(待续)