Creates a room based on a LibP2P pub-sub channel. Emits membership events, listens for messages, broadcast and direct messeges to peers.
$ npm install ipfs-pubsub-room
Creating a pubsub room from a LibP2P node
const Room = require('ipfs-pubsub-room')
const Libp2p = require('libp2p')
const libp2p = new Libp2p({ ... })
await libp2p.start()
// libp2p node is ready, so we can start using ipfs-pubsub-room
const room = Room(libp2p, 'room-name')
Creating a pubsub room from an IPFS node
const Room = require('ipfs-pubsub-room')
const IPFS = require('ipfs')
const ipfs = await IPFS.create({ ... })
const room = Room(ipfs, 'room-name')
Once we have a room we can listen for messages
room.on('peer joined', (peer) => {
console.log('Peer joined the room', peer)
})
room.on('peer left', (peer) => {
console.log('Peer left...', peer)
})
// now started to listen to room
room.on('subscribed', () => {
console.log('Now connected!')
})
libp2p
: LibP2P node. Must have pubsub activatedroomName
: string, global identifier for the roomoptions
: object:pollInterval
: interval for polling the pubsub peers, in ms. Defaults to 1000.
const room = Room(libp2p, 'some-room-name')
Broacasts message (string or Uint8Array).
Sends message (string or Uint8Array) to peer.
Leaves room, stopping everything.
Returns an array of peer identifiers (strings).
Returns a boolean indicating if the given peer is present in the room.
Listens for messages. A message
is an object containing the following properties:
from
(string): peer iddata
(Uint8Array): message content
Once a peer has joined the room.
Once a peer has left the room.
Once your program has subscribed the topic and announced through IPFS pubsub.
ISC