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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 命名实体识别_使用Python和Keras的有关命名实体识别(NER)的完整教程

假设您是报纸行业的编辑,每天都会收到数千个故事。您将如何找到与体育,政治等特定领域相关的故事?您会讲完所有这些故事吗?无权利?一个可以帮助您划分为不同类别的系统怎么样?该系统还可以执行复杂的任务&a…

android手机活跃度,微信Android机型活跃度曝光,这个结果你满意吗?

原标题:微信Android机型活跃度曝光,这个结果你满意吗?在本周的第二届前端开发者大会上,由腾讯微信工程师公布了微信Android客户端机型前十的发布图,说的也是某款手机的存量跟用户活跃度的统计,在这张微信分…

postgresql9.4.4中文手册笔记-9.10 支持枚举函数

2019独角兽企业重金招聘Python工程师标准>>> 创建枚举类型 create type name as ENUM(zhao,qian,sun,li,zhou,wu, zheng,wang,cheng); 支持枚举函数 select enum_first(null::testenum); --查询枚举类型第一个元素 enum_first ------------zhao (1 row) select e…

.NET Framework源码研究系列之---Delegate

前言 曾几何时能看到微软产品的源码简直是天方夜谭,不过现在这却成了现实,微软终于对外开放了它的产品的源代码.抛去开源运动与微软之间的世代情仇,抛去微软这一做法的初衷,这总归是件好事,能够让我们拨开云雾,一窥优秀产品的秘密. 前两天看到有位仁兄在随笔中的留言,说他以为&…

【原】P2P应用的探究

什么是P2P(peer to peer)? 跟P2P对应的是传统的客户端-服务器(C/S或B/S)体系结构,这种体系结构就是客户端发送请求,服务器端给予响应。但是随着客户端不断的增加,成了服务器端崩溃的主要原因。增加服务器的功能或者资…

如何设置多个图层层叠关系_如何玩转 XMind 中的多种思维结构?

熟悉 XMind 的用户都知道,XMind 支持多种思维结构,并且不同思维结构可以混用。每一个分支都可以是一个不同的结构,让你不受限制、自由地进行思维的发散和整理。这个是目前其他思维导图工具少有的。在 XMind 中,你可以用思维导图、…

python修改html表格,使用styles和css更改pandas dataframe html表python中...

这需要几个步骤:首先导入HTML并重新输入from IPython.display import HTMLimport re你可以通过to_html方法得到html pandas.df_html df.to_html()接下来,我们将为html表和我们要创建的样式生成随机标识符.random_id id%d % np.random.choice(np.arange(1000000))因…

PHP关于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本选择

2019独角兽企业重金招聘Python工程师标准>>> 这里是我在搭建php环境时收集的资料供大家参考: 现在PHP官网上下载PHP安装包都有VC11或VC9的字样,这是什么含义,我们应该下载哪种安装包更好呢?其实PHP官网给出了答案&…

Silverlight与WCF之间的通信(5)silverlight应用和wcf服务的发布方法

上一篇博文中有朋友问到关于silverlight程序发布的问题,上一篇写的是silverlight访问host在console上的wcf,其实关于wcf和silverlihgt通信的问题有好几种方式,这里列举了一下 客户端和服务端采用http协议通信(分两种,同…

常用函数(字符和字符串)

Pascal常用的字符处理标准函数有5个 (1)ord(ch) 求字符ch对应的ASCII代码值;如 ord (A)结果为65,ord(true)结果为1,ord(false)结果为0(2)chr(x) 求x(x为1…255…

python搜索文件内容_python实现搜索文本文件内容

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

html单张图片效果,jquery+html5实现单张图片上传预览

js:if (window.File && window.FileReader && window.FileList && window.Blob){//Blob是计算机界通用术语之一,全称写作:BLOB (binary large object),表示二进制大对象。//全部支持function handleFileS…

通向成功的23个方法

1.设立大目标和小目标。总要保持向前看,但不要忘记你今天的成绩。 2.每天都设立新的目标。因为成功是一个过程,所以要确保总是有新的事情要完成。 3.逐一完成每周的事情。将时间表分成容易做到的几块,并且单独完成每一块。 4.每天至少完成一件…

科讯SQL标签调用文章技巧

http://qdh68.blog.163.com/blog/static/13756126201241584835332/转载于:https://www.cnblogs.com/zhangzhu/archive/2013/03/31/2991754.html

小程序引用其他页面js_来聊聊小程序页面之间如何通信

小程序页面之间如何通信?首先将通信的模型列举出来, 分为以下几种兄弟页面间通信父路径页面向子路径页面通信子路径页面向父路径页面通信通信的方式localStorage 本地存储globalData 全局对象eventBus 发布订阅PageModel 缓存整个pageModel至globalDataLocalStorage利用onShow…

html meta页面自适应,【转载·收藏】 html5手机网站自适应需要加的meta标签

webapp开发初期,会碰到在pc端开发好的页面在移动端显示过大的问题,这里需要在html head中加入meta标签来控制缩放下面是对于这个标签的具体说明:viewport 语法介绍:content包含有以下几个属性:height [pixel_value | device-height] ,width [pixel_value | device-w…

用碧海潮声制作的宋体(雅黑宋体)替换Windows7原生的火柴棍式的宋体

第一眼见到Windows7的时候,界面真的非常漂亮,但是当查看文件属性的时候,里面宋体出奇的难看,网上有很多在XP里替换宋体的方法,但是到了Windows7里就不那么好用了,经过多次查找相关方法,终于使用…

最近2个月的生活

最近2个月,心情动荡不定。时而快乐,时而悲伤,时而激动,时而淡定。最近的故事还是比较多的,就按编号来分别描述吧.1.周五,公司举办了2012年年会。 本次年会,是 帅哥和美女展示身材和才艺的机会。…

json动画_three.js动画(四)

ThreeJS的动画系列分为:基础动画、相机控制、变形动画、用骨骼和蒙皮制作动画以及使用外部模型创建动画。用骨骼和蒙皮制作动画用骨骼来做动画时,移动一下骨骼,Three.js必须决定如何相应地迁移附着在骨骼上的皮肤,一起来看吧~~~举…

如何做PHD (1)

做PHD两年了,经验不多,从朋友、导师、教授、名人得到的做PHD的经验却很宝贵,为了不让自己忘记,特此记录,希望对各位已经是PHD或即将成为PHD的朋友有所帮助。 1.多读文章 做PHD与做硕士不一样,计算机的硕士…