1.2.0 • Published 4 years ago

@xmpp-plugins/roster v1.2.0

Weekly downloads
22
License
ISC
Repository
github
Last release
4 years ago

roster

roster management for @xmpp/client.

Supports Node.js and browsers.

Roster push is currently not supported.

Install

npm install @xmpp-plugins/roster

Usage

import { client, xml } from "@xmpp/client"
import setupRoster from "@xmpp-plugins/roster"

const xmpp = client({service: 'wss://xmpp.example.com'})
const roster = setupRoster(xmpp)

roster.on('set', ({item, version}) => {
  console.log(`Roster version ${version} received`, item)
})

const { version, items } = await roster.get()
console.log(`Current roster version is ${version}`)

Get

Retrieve the roster.

version is optional and refers to roster version.

roster.get(version).then(roster => {
  if (!roster) {
    // the roster hasn't changed since last version
    return
  }

  const { version, items } = roster
  console.log(version, roster)
})

Set

Add or update a roster entry.

roster.set({jid: 'foo@bar', name: 'Foo Bar'}).then(() => {
  console.log('success')
})

Remove

Remove a roster entry.

roster.remove(jid).then(() => {
  console.log('success')
})

Set event

Emitted when a roster entry was added or updated.

roster.on('set', ({item, version}) => {
  console.log(item)
  console.log(version)
})

Remove event

Emitted when a roster entry was removed.

roster.on('remove', ({jid, version}) => {
  console.log(jid.toString(), 'removed')
  console.log(version)
})

References

RFC-6121: Managing the Roster