API 参考手册
Peer CONSTRUCTOR
const peer = new Peer([id], [options]);
一个peer可以连接到其他peer并监听连接。
id STRING
其他peer可以使用提供的ID连接到此peer。如果没有提供ID,将由中介服务器生成一个。ID必须以字母数字字符(小写或大写字母或数字)开头和结尾。 在ID的中间,允许使用短横线(-)和下划线(_)。
不建议您使用此ID来标识peer,因为它仅用于中介连接。建议您设置 metadata 选项以发送其他标识信息。
|
peer.connect METHOD
const dataConnection = peer.connect(id, [options]);
连接到由 id
指定的远程对等方,并返回一个数据连接。请务必监听 error
事件,以防连接失败。
id STRING
远程对等方的中介ID(他们的 peer.id
)。
options OBJECT
label STRING
您希望通过其唯一标识此数据连接的标签。如果未指定,将随机生成一个标签。可以通过 dataConnection.label
访问。
metadata
与连接关联的元数据,由发起连接的一方传入。可以通过 dataConnection.metadata
访问。可以是任何可序列化的类型。
serialization STRING
可以是 binary
(默认)、binary-utf8
、json
或 none
。可以通过 dataConnection.serialization
访问。
binary-utf8 会因为UTF8字符串打包成二进制格式的方式而影响性能。
|
peer.call METHOD
const mediaConnection = peer.call(id, stream, [options]);
调用由 id
指定的远程对等方,并返回一个媒体连接。如果连接失败,请务必监听 error
事件。
id STRING
远程对等方的中介ID(即他们的 peer.id
)。
options OBJECT
metadata
与连接相关的元数据,由发起连接的人传入。可以通过 mediaConnection.metadata
访问。可以是任何可序列化的类型。
peer.on METHOD
peer.on(event, callback);
设置peer事件的监听器。
'open' EVENT
peer.on('open', function(id) { ... });
当与PeerServer建立连接时触发。您可以在此事件触发之前使用peer,但发送给服务器的消息将被排队。id
是peer的中介ID(在构造函数中提供或由服务器分配)。
如果连接速度很重要,您不应在连接到其他peer之前等待此事件。 |
'call' EVENT
peer.on('call', function(mediaConnection) { ... });
当远程peer尝试呼叫您时触发。触发时传入的 mediaConnection
尚未激活;您必须先接听呼叫(mediaConnection.answer([stream]
);)。然后,您可以监听 stream
事件。
'close' EVENT
peer.on('close', function() { ... });
当peer被 destroyed
且无法再接受或创建任何新连接时触发。此时,peer的所有连接都将被关闭。
为确保peer正确清理,我们建议在不再需要peer时调用 peer.destroy() 。
|
'disconnected' EVENT
peer.on('disconnected', function() { ... });
当peer与信令服务器断开连接时触发,可能是 手动断开连接,也可能是因为与信令服务器的连接丢失。当peer断开连接时,其现有连接将保持活动状态,但peer无法接受或创建任何新连接。您可以通过调用 `peer.reconnect()`重新连接到服务器。
peer.disconnect METHOD
peer.disconnect();
关闭与服务器的连接,同时保留所有现有的数据和媒体连接。peer.disconnected
将被设置为 true
,并触发 disconnected
事件。
此操作不可撤销;相应的对等体对象将不再能够创建或接收任何连接,并且在(云)服务器上,其 ID 将被放弃。 |
peer.reconnect METHOD
peer.reconnect();
尝试使用对等方的旧ID重新连接到服务器。只有 已断开的peers 才能重新连接。已销毁的对等方无法重新连接。如果连接失败(例如,如果对等方的旧ID现在已被占用),对等方的现有连接不会关闭,但会触发任何相关的错误事件。
peer.destroy METHOD
peer.destroy();
关闭与服务器的连接并终止所有现有连接。peer.destroyed
将被设置为 true
。
此操作不可撤销;相应的对等对象将不再能够创建或接收任何连接,其在(云)服务器上的ID将被没收,并且其所有数据和媒体连接都将被关闭。 |
DataConnection CLASS
封装了WebRTC的DataChannel。要获取一个DataConnection对象,请使用peer.connect
或监听connect
事件。
MediaConnection CLASS
.answer METHOD
mediaConnection.answer([stream],[options]);
当在对等体上接收到call
事件时,可以调用回调提供的媒体连接上的 .answer
来接受呼叫,并可选地发送自己的媒体流。
stream MEDIASTREAM
来自 getUserMedia
的WebRTC媒体流。
util OBJECT
UTILITY
提供多种有用的工具。
仅文档中记录的工具保证存在于util 中。未记录的工具可能会在不发出警告的情况下被移除。我们并不认为这些是“重大更改”。
|
.browser STRING
if (util.browser === 'Firefox') { /* 可以与Firefox对等方对等。 */ }
当前浏览器。util.browser
当前可以有以下值:'firefox'、'chrome'、'safari'、'edge'、'不受支持的浏览器。'、'不是浏览器。'(未知的WebRTC兼容代理)。