Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
amqp-as-promised
Advanced tools
Promise wrapper around node-amqp.
npm install amqp-as-promised
conf = require './myconf.json' # see example conf below
amqpc = (require 'amqp-as-promised') conf.amqp
As of version 0.1.0, the following config parameters are accepted, although we also try to keep backwards compatibility with the older format.
connection
Connection settings accepted by node-amqp. You need to at minimum specify either
host
vhost
login
password
or
url
.local
If true, means there will be no AMQP connection. Default: false
rpc
timeout
: timeout in ms for rpc calls. Default: 1000mslogLevel
logLevel
: sets the log level. Defaults to INFO
. Possible levels
are DEBUG
, INFO
, WARN
, ERROR
{
"connection": {
"host": "192.168.0.10",
"vhost": "test",
"login": "test",
"password": "supersecret"
},
"logLevel": "warn",
"local": false,
"rpc": {
"timeout": 2000
}
}
Or with url:
{
"connection": {
"url": "amqp://myuser:supersecret@192.168.0.10/test"
},
"logLevel": "warn"
}
amqpc
to publishamqpc.exchange('myexchange').then (ex) ->
msg = {}
msg.domain = domain
ex.publish 'mytopic.foo', msg
amqpc
to bindThis is shorthand for binding and subscribing.
amqpc.bind 'myexchange', 'myqueue', 'mytopic.#', (msg, headers, del) ->
console.log 'received message', msg
To bind an anonymous queue.
amqpc.bind 'myexchange', '', 'mytopic.#', (msg, headers, del) ->
console.log 'received message', msg
Or even shorter
amqpc.bind 'myexchange', 'mytopic.#', (msg, headers, del) ->
console.log 'received message', msg
To bind the queue to the exchange without subscribing to it, skip the
last parameter (the subscription callback). This is essentially the
same as queue.bind myexchange, 'mytopic'
, except the exchange and
queue are specified by their names:
amqpc.bind 'myexchange', 'myqueue', 'mytopic.#'
amqpc
to get an anomymous queueTo create an anomymous queue.
amqpc.queue().then (q) -> console.log 'my queue', q
amqpc
to do RPC-style callsto send a message to a service that honors the replyTo/correlationId contract:
amqpc.rpc('myexchange', 'routing.key', msg, [headers], [options]).then (response) ->
console.log 'received message', response
headers
is an optional parameter holding any custom headers to be
passed on the RPC service.options
supports the following settings
timeout
- the timeout in ms for this callNote! In earlier versions the response was an array that included the response headers. As of version 0.1.0, this is no longer the case.
amqpc
to serve RPC-style callsTo set up a message consumer that automatically honors the replyTo/correlationId contrat:
amqpc.serve 'myexchange', 'mytopic.#', (msg, headers, del) ->
return { result: 'ok' }
The value returned from the handler will be sent back on the queue
specified by the replyTo
header, with the correlationId
set.
If an exception is thrown by the handler, it will be propagated back
to the client as an object with a error
property containing the
error message.
graceful = (opts) ->
log.info 'Shutting down'
amqpc.shutdown().then ->
process.exit 0
process.on 'SIGINT', graceful
process.on 'SIGTERM', graceful
amqpc
objectamqpc.exchange(name, opts)
A promise for an exchange. If opts
is omitted declares an exchange in passive
mode.
amqpc.queue(qname, opts)
A promise for a queue. If qname
is omitted, ""
is used. If opts is
omitted a default durable:true
and autoDelete:(qname=='')
. See
queue.*
below.
amqpc.bind(exname, qname, topic[, callback])
Shorthand for
exname
. Note that passive:true
so
exchange must be declared already.qname
. See amqpc.queue
for queue default
opts.topic
.callback
to queue (optional).amqpc.shutdown()
Will unbind all queues and unsubscribe all callbacks then gracefully shut down the socket connection.
amqpc.local
Read only property that tells whether conf.local
was true.
queue.bind(ex, topic)
Binds the queue to the given exchange (object, not name). Will unbind if queue was already bound.
queue.unbind()
Unbinds the queue (if currently bound).
queue.subscribe(opts, callback)
Subscribes the callback to this queue. Will unsubscribe any previous
callback. If opts is omitted, defaults to ack: false, prefetchCount: 1
queue.unsubscribe()
Unsubscribes current callback (if any).
queue.shift([reject[, requeue]])
To be used with queue.subscribe({ack:true}, callback)
. reject
rejects the previous message and will requeue it if requeue
is true.
queue.name
Read only property with the queue name.
FAQs
A promise-based AMQP API build on node-amqp
The npm package amqp-as-promised receives a total of 330 weekly downloads. As such, amqp-as-promised popularity was classified as not popular.
We found that amqp-as-promised demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.