webrtc-swarm

Create a swarm of p2p connections using webrtc and a signalhub

  • 所有者: mafintosh/webrtc-swarm
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

webrtc-swarm

Create a swarm of p2p connections using webrtc and a
signalhub.

npm install webrtc-swarm

Usage

var swarm = require('webrtc-swarm')
var signalhub = require('signalhub')

var hub = signalhub('swarm-example', ['http://yourdomain.com'])

var sw = swarm(hub, {
  wrtc: require('wrtc') // don't need this if used in the browser
})

sw.on('peer', function (peer, id) {
  console.log('connected to a new peer:', id)
  console.log('total peers:', sw.peers.length)
})

sw.on('disconnect', function (peer, id) {
  console.log('disconnected from a peer:', id)
  console.log('total peers:', sw.peers.length)
})

API

var swarm = require('webrtc-swarm')

var sw = swarm(hub, opts)

Creates a new webrtc swarm using
signalhub hub for discovery and
connection brokering.

Valid keys for opts include:

  • wrtc - (optional) a reference to the wrtc library, if using Node.
  • uuid - (optional) a unique identifier for this peer. One is generated for
    you if not supplied.
  • maxPeers - (optional) the maximum number of peers you wish to connect to.
    Defaults to unlimited.
  • wrap - (optional) a function that can modify the WebRTC signaling data
    before it gets send out. It's called with wrap(outgoingSignalingData, destinationSignalhubChannel) and must return the wrapped signaling data.
  • unwrap - (optional) a function that can modify the WebRTC signaling data
    before it gets processed. It's called with unwrap(incomingData, sourceSignalhubChannel) and must return the raw signaling data.

Additional optional keys can be passed through to the underlying
simple-peer instances:

  • channelConfig - custom webrtc data channel configuration (used by
    createDataChannel)
  • config - custom webrtc configuration (used by RTCPeerConnection
    constructor)
  • stream - if video/voice is desired, pass stream returned from
    getUserMedia

sw.close()

Disconnect from swarm

sw.on('peer, connect', peer, id)

peer and connect are interchangeable. Fires when a connection has been
established to a new peer peer, with unique id id.

sw.on('disconnect', peer, id)

Fires when an existing peer connection is lost.

peer is a simple-peer instance.

sw.on('close')

Fires when all peer and signalhub connections are closed

sw.peers

A list of peers that sw is currently connected to.

swarm.WEBRTC_SUPPORT

Detect native WebRTC support in the javascript environment.

var swarm = require('webrtc-swarm')

if (swarm.WEBRTC_SUPPORT) {
  // webrtc support!
} else {
  // fallback
}

License

MIT

主要指标

概览
名称与所有者mafintosh/webrtc-swarm
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2015-04-26 20:32:22
推送于2020-11-06 21:49:23
最后一次提交2017-11-01 23:02:23
发布数17
最新版本名称v2.9.0 (发布于 2017-10-14 22:05:44)
第一版名称v1.0.0 (发布于 2015-04-26 13:56:56)
用户参与
星数382
关注者数18
派生数60
提交数73
已启用问题?
问题数19
打开的问题数9
拉请求数12
打开的拉请求数6
关闭的拉请求数6
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?