- the
fromURI
method now returnsEither String ConnectionOpts
to better handle parsing-errors
- bump dependency bounds for
crypton-connection
- replace
connection
dependency withcrypton-connection
- fix a potential deadlock in
closeConnection
closeChannel
now uses aChannelClosedException
to kill the channel-thread instead ofThreadKilled
. This fixes a bug in 0.21.0 that led to errors being printed on the screen whencloseChannel
was called.
- added method
isNormalChannelClose
- Channels that have no explicit exception handlers (added using
addChannelExceptionHandler
) will now print all exceptions tostderr
, even if those are not of typeChannelClosedException
. This is an uncommon situation, so it should not have an observable effect for most users.
fromURI
now activates TLS if the URI starts withampqs://
. Previously it only changed the port, without activating TLS.fromURI
now supports multi-broker URIs in the form ofamqp://user:pass@host-1:port-2,host-2:port-2/vhost
- add
nackMsg
andnackEnv
methods
- change
FVString
to be binary instead of UTF-8 encoded
- respond to
channel.close
messages from the server withchannel.close_ok
- support
connection
0.3 and drop support fornetwork
< 2.6
- new function
addConnectionBlockedHandler
to be notified when the connection is blocked (due to the server being resource-constrained)
ConnectionClosedException
andChannelClosedException
now specify whether the close was normal (user-initiated) or abnormal (caused by an AMQP exception)- channels that are abnormally closed and have no exception handler (set using
addChannelExceptionHandler
) will now print the error tostderr
- new function
getServerProperties
to get the RabbitMQ server-properties consumeMsgs'
now allows setting a consumer-cancellation-callback
- When the server asynchronously closed a channel, this was (erroneously) internally represented as a
ConnectionClosedException
. It is now represented as aChannelClosedException
. This could affect you if you explicitly match onConnectionClosedException
orChannelClosedException
in your code, for example when usingaddChannelExceptionHandler
.
- new
coName
field inConnectionOpts
to specify a custom name that will be displayed in the RabbitMQ web interface
- export the
AckType
data-type and constructors
- The way channels are closed internally was changed. This may affect you if you have installed an exception handler inside the callback passed to
consumeMsgs
. Specifically, the exceptions used internally to close channels are now wrapped insideChanThreadKilledException
. You should make sure to re-throw this exception if you did catch it.
- show all exceptions if no host can be connected to
- publishMsg now returns the message sequence-number
- new
TLSCustom
field inTLSSettings
- don't print to stderr when
openConnection
fails to connect to a broker
- support for RabbitMQ publisher confirms
- send version info of this library to RabbitMQ on connecting
- GHC 7.10 compatibility
- error messages now go to stderr
- new function addChannelExceptionHandler
- all content fields for messages are now supported
- the maximum number of channels can now be set
- add 'global' flag for qos
- implement closeChannel
- TLS support
- new helper function rejectEnv
- new field exchangeArguments in ExchangeOpts
- new module Network.AMQP.Lifted with consumeMsgs functions lifted to MonadBaseControl
- new function fromURI to parse AMQP URIs
- heartbeat support
- new function addReturnListener which allows specifying a handler for returned messages
- new function openConnection'' with support for most AMQP connection options
- better error message on failed connection handshake
- support for AMQP 0-9-1
- new function consumeMsgs' which allows you to pass in a field-table
- new function bindExchange allows for binding an exchange to another exchange
- new function unbindQueue allows unbinding a queue from an exchange
- new function unbindExchange allows unbinding an exchange from an exchange
- use Handles instead of sockets
- fix deprecation warnings from Data.Binary
- add (Read, Ord, Eq, Show) instances for most data-types
- add queueHeaders field to QueueOpts
- Data.Text is now used instead of Strings. Using the OverloadedStrings extension will make upgrading easier
- the field-types in Network.AMQP.Types should now be more compatible with RabbitMQ
- hostnames passed to openConnection will now be resolved
- basic QoS support
- exceptions thrown in a callback will not erroneously close the channel anymore