Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@rsksmart/rif-communications-pubsub

Package Overview
Dependencies
Maintainers
2
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rsksmart/rif-communications-pubsub

PubSub module

  • 0.1.0-dev.11
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

RIF Communications PubSub

CircleCI Dependency Status standard-readme compliant js-standard-style Managed by tAsEgir

Library for creating a PubSub room with libp2p

This project extends the ipfs-pubsub-room, rewriting it in typescript and adding libp2p node.

Table of Contents

Install

npm

> npm install @rsksmart/rif-communications-pubsub

WARNING: This package still have not been released!

Usage

Example of usage:

import { Room, DirectChat, createLibP2P, Message, MessageDirect } from '@rsksmart/rif-communications-pubsub'

const libp2p = await createLibP2P()
const room = createRoom(libp2p, 'my_topic')

room.on('peer:joined', (peer: string) => {
  console.log('Peer joined the room ', peer)
})

room.on('peer:left', (peer: string) => {
  console.log('Peer left the room', peer)
})

room.on('message', ({from, data}: Message) => {
  console.log('New message from ', peer, ' content ', data)
})

room.on('unsubscribed', () => {
  console.log('Unsubscribed from the room room')
})

const directChat = DirectChat.getDirectChat(libp2p)

directChat.on('message', ({from, to, data}: MessageDirect) => {
  console.log('New direct message from ', peer, ' to ', to, ' content ', data)
})

API

const libp2p = await createLibP2P()

const room = createRoom(libp2p, topic) // Creates room with specific topic

// Methods
room.leave() // Leave the room
async room.broadcast(message: string | buffer) // Send message to the room

// Getters
room.peerId
room.peers
room.hasPeer(peerId: string)
room.libp2p

// Listeners
room.on('peer:joined', (peerId: string) => {})
room.on('peer:left', (peerId: string) => {})
room.on('message', (message: Message) => {})
room.on('unsubscribed', () => {})
room.on('error', (error: Error) => {})

const directChat = DirectChat.getDirectChat(libp2p)

// Methods
directChat.sendTo('somePeerId', {level: 'info', msg: 'hello world with custom object'})

// Listeners
directChat.on('message', (message: MessageDirect) => {})
directChat.on('error', (error: Error) => {})

License

MIT

Keywords

FAQs

Package last updated on 21 Dec 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc