libp2p-floodsub
0.12.1

Intro

Installable via npm install --save libp2p-floodsub, it can also be used directly in the browser.

Download

The source is available for download from GitHub. Alternatively, you can install using npm:

$ npm install --save libp2p-floodsub

You can then require() libp2p-floodsub as normal:

const libp2PFloodsub = require('libp2p-floodsub')

In the Browser

Libp2p-floodsub should work in any ES2015 environment out of the box.

Usage:

<script type="text/javascript" src="index.js"></script>

The portable versions of libp2p-floodsub, including index.js and index.min.js, are included in the /dist folder. Libp2p-floodsub can also be found on unkpkg.com under

FloodSub

FloodSub (aka dumbsub is an implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).

Extends EventEmitter.

Parameters

  1. libp2p: any:  

instance

FloodSub.prototype.cache

cache: TimeCache

Time based cache for sequence numbers.

FloodSub.prototype.peers

peers: Map<string, Peer>

Map of peers.

FloodSub.prototype.subscriptions

subscriptions: Set<string>

List of our subscriptions

FloodSub.prototype.start

start(callback: Function): undefined

Mounts the floodsub protocol onto the libp2p node and sends our subscriptions to every peer conneceted

Parameters

  1. callback: Function:  

Returns

FloodSub.prototype.stop

stop(callback: Function): undefined

Unmounts the floodsub protocol and shuts down every connection

Parameters

  1. callback: Function:  

Returns

FloodSub.prototype.publish

publish(topics: (Array<string> | string), messages: (Array<any> | any)): undefined

Publish messages to the given topics.

Parameters

  1. topics: (Array<string> | string):  
  2. messages: (Array<any> | any):  

Returns

FloodSub.prototype.subscribe

subscribe(topics: (Array<string> | string)): undefined

Subscribe to the given topic(s).

Parameters

  1. topics: (Array<string> | string):  

Returns

FloodSub.prototype.unsubscribe

unsubscribe(topics: (Array<string> | string)): undefined

Unsubscribe from the given topic(s).

Parameters

  1. topics: (Array<string> | string):  

Returns

Peer

The known state of a connected peer.

Parameters

  1. info: any:  

instance

Peer.prototype.info

info: PeerInfo

Peer.prototype.conn

conn: Connection

Peer.prototype.topics

topics: Set

Peer.prototype.stream

stream: Pushable

Peer.prototype.isConnected

isConnected: boolean

Is the peer connected currently?

Peer.prototype.isWritable

isWritable: boolean

Do we have a connection to write on?

Peer.prototype.write

write(msg: Buffer): undefined

Send a message to this peer. Throws if there is no stream to write to available.

Parameters

  1. msg: Buffer:  

Returns

Peer.prototype.attachConnection

attachConnection(conn: Connection): undefined

Attach the peer to a connection and setup a write stream

Parameters

  1. conn: Connection:  

Returns

Peer.prototype.sendSubscriptions

sendSubscriptions(topics: (Set | Array)): undefined

Send the given subscriptions to this peer.

Parameters

  1. topics: (Set | Array):  

Returns

Peer.prototype.sendUnsubscriptions

sendUnsubscriptions(topics: (Set | Array)): undefined

Send the given unsubscriptions to this peer.

Parameters

  1. topics: (Set | Array):  

Returns

Peer.prototype.sendMessages

sendMessages(msgs: Array<any>): undefined

Send messages to this peer.

Parameters

  1. msgs: Array<any>:  

Returns

Peer.prototype.updateSubscriptions

updateSubscriptions(changes: Array): undefined

Bulk process subscription updates.

Parameters

  1. changes: Array:  

Returns

Peer.prototype.close

close(callback: Function): undefined

Closes the open connection to peer

Parameters

  1. callback: Function:  

Returns