p2p-graph

Real-time P2P network visualization with D3

Github星跟蹤圖

p2p-graph travis npm downloads javascript style guide

Real-time P2P network visualization with D3

demo

This package is used by WebTorrent. You can see this
package in action on the webtorrent.io homepage or
play with it on the
esnextb.in demo.

Install

npm install p2p-graph

This package works in the browser with browserify. If you do not use a bundler, you can use the standalone script directly in a <script> tag.

Usage

var Graph = require('p2p-graph')

var graph = new Graph('.root')

graph.on('select', function (id) {
  console.log(id + ' selected!')
})

// Add two peers
graph.add({
  id: 'peer1',
  me: true,
  name: 'You'
})
graph.add({
  id: 'peer2',
  name: 'Another Peer'
})

// Connect them
graph.connect('peer1', 'peer2')

API

Heads Up! : Represented Graphs are directed!

In graph theory, a directed graph (or digraph) is a graph that is a set of vertices connected by edges, where the edges have a direction associated with them.

graph = new Graph(rootElem)

Create a new P2P graph at the root DOM element rootElem. In addition to an
Element, a query selector string (like '.my-cool-element') can also be passed
in.

graph.add(peer)

Add a peer to the graph. The peer object should contain:

{
  id: 'unique-identifier', // should be unique across all peers
  me: true, // is this the current user?
  name: 'display name' // name to show in the graph UI
}

graph.connect(id1, id2)

Connect to two nodes, identified by id1 and id2, to each other.

graph.disconnect(id1, id2)

Disconnect two nodes, identified by id1 and id2, from each other.

graph.areConnected(id1, id2)

Check whether two nodes identified by id1 and id2 are somehow connected (id1 --> id2 or id2 --> id1).

graph.getLink(id1, id2)

If exists return the link between id1 and id2, otherwise null.

graph.hasPeer(Id1[, ...IdX])

Return true if all the given Nodes exists, otherwise false.

graph.hasLink(Id1, Id2)

Return true the given Link exists, otherwise false (direction matters!).

graph.remove(id)

Remove a node, identified by id, from the graph.

graph.seed(id, isSeeding)

Change a node's status identified by id, isSeeding must be true or false.

graph.rate(id1, id2, speed)

Update the transfer rate between two nodes identified by id1 and id2. speed must be expressed in bytes.

graph.list()

Return an array of Nodes.

graph.destroy()

Destroys the graph and all the listeners related to it.

graph.on('select', function (id) {})

Event is fired when a node is selected (clicked on) by the user. The id argument is either the id
of the selected peer, false to indicate that the peer has been deselected. Only one peer can be
selected at any given time.

license

MIT. Copyright (c) Feross Aboukhadijeh.

主要指標

概覽
名稱與所有者feross/p2p-graph
主編程語言JavaScript
編程語言JavaScript (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2016-09-21 01:39:43
推送於2021-03-30 13:01:53
最后一次提交2019-11-12 15:44:17
發布數10
最新版本名稱v2.0.0 (發布於 2019-11-12 15:44:17)
第一版名稱v1.0.0 (發布於 2016-09-20 18:51:31)
用户参与
星數287
關注者數10
派生數33
提交數97
已啟用問題?
問題數6
打開的問題數2
拉請求數13
打開的拉請求數4
關閉的拉請求數4
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?