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?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?