0.0.0 • Published 3 years ago

emilton v0.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

SPS

Usage

Simple queue

const { SPS, RabbitDriver } = require("SPS")

const broker = new SPS(new RabbitDriver("amqp://user:password@amqp.example.com"))

broker.emit("queue", { message: "plop" })
broker.on("queue", (message, ack) => {
  console.log(message)
  ack()
})

// - or -
const q = broker.queue("queue")
q.emit({ message: "plop" })
broker.on("queue", (message, ack) => {
  console.log(message)
  ack()
})

Exchanges

const { SPS, RabbitDriver } = require("SPS")

const broker = new SPS(new RabbitDriver("amqp://user:password@amqp.example.com"))

broker.emit("exchange", "routing.key", { message: "plop" })
broker.on("exchange", "routing.key", (message, ack) => {
  console.log(message)
  ack()
})

// - or -

const x = broker.exchange("exchange")
x.emit("routing.key", { message: "plop" })
x.on("routing.#", (message, ack) => {
  console.log(message)
  ack()
})

RPC

const { SPS, RabbitDriver } = require("SPS")

const broker = new SPS(new RabbitDriver("amqp://user:password@amqp.example.com"))

// caller
broker.rpc("queue")
  .emit({ message: "foo" })
  .on("reply", message => {
    console.log(message)
  })
// callee
broker.rpc("queue")
  .on("message", (message, ack) => {
    console.log(message)
    ack({ ok: true })
  })

// - or -

// caller
const rpc = broker.rpc("queue").promise()
const message = await rpc({ message: "plop" })
// callee
broker.rpc("queue")
  .on("message", (message, ack) => {
    console.log(message)
    ack({ ok: true })
  })