0.0.0 • Published 3 years ago
emilton v0.0.0
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 })
})
0.0.0
3 years ago