peer.js 是一个基于浏览器WebRTC功能实现的javascript功能包,可以提供丰富的、易用的并且可配置的P2P连接API。借助peer.js可以实现一端仅需知道另一端的ID即可连接到另一端,并且建立Data或Media连接,实现数据或者Media传输功能。该ID可以自行设定,也可以由服务器随机分配。
本文主要介绍peer.js的基本功能,针对当前peer.js的最新版本0.3.9。
Peer.js可以分为三个主要部分:Peer,建立一个用户端,并连接到服务器;DataConnection,用户端和用户端之间P2P的数据传输连接;MediaConnection,用户端和用户端之间的媒体流连接。
Peer:可以发起连接或者等待被发起连接的一个服务端;
使用 new Peer([id] , [options]);创建一个新的用户端:
[id]是当前用户的id,标识当前用户身份的唯一标志,可以由用户本身指定,也可以由服务器随机分配
[options] 是在创建用户端的可选配置项,其中最主要的功能是设定所连接的服务器的地址,若不设定,则采用peer.js内的默认host、port和path
主要方法:
peer.connect(id,[options]); 连接到另一个用户端
id:另一个用户端的ID,声明需要连接的用户端
[options]:可选项,在进行连接时的可选配置项,包括label(标签)、metadata(元数据)等
peer.call(id, stream, [options]); 向另一个用户端发起视频连接
id: 另一个用户端的ID,声明需要连接的用户端
stream: 向对方发起视频连接时,本地的视频流
[options]: 可选配置项,只有metadata
peer.on(event,callback); 监听peer事件,最常用的包括:
peer.on('open' , function(id){……}); 当peer被打开时(连接服务器成功)触发
peer.on('connect', function(connection){……}); 当peer连接到另一个用户端时(可以是主动连接,也可以是被连接)
peer.on('error', function(err){……}); 当连接出现错误时进行错误处理,在一开始可以很简单的实现为alert(err.type);来看错误类型
主要属性:
peer.id
peer.connections 以哈希表的形式存储的连接到当前用户端的所有连接
peer.disconnected 用于表示当前用户端是否断开连接的属性
peer.destroyed 用于表示当前用户端是否被销毁的属性
DataConnection: 使用Peer.Connect()方法连接或者被连接时产生的数据连接
MediaConnection;使用Peer.call()方法发起或者被发起视频连接是产生的媒体流连接
后两者具体实现数据的传输功能和相关其他功能,不做赘述。
可以参考peer.js的API介绍:点击打开链接