---
url: https://node-ts.github.io/bus/api/bus-rabbitmq/classes/RabbitMqTransport.md
---
[API reference](../../index.md) / [@node-ts/bus-rabbitmq](../index.md) / RabbitMqTransport

# Class: RabbitMqTransport

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:79](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L79)

A RabbitMQ transport adapter for @node-ts/bus.

If the connection or channel to the broker is lost, the transport reconnects with backoff (see
`connectionRecovery` in `RabbitMqTransportConfiguration`), re-declares its topology and resumes
consuming. Publishing and sending wait for the reconnect. Messages that were received on the lost
channel can no longer be acked, so the broker redelivers them.

## Implements

* [`Transport`](../../bus-core/interfaces/Transport.md)<`RabbitMqMessage`>

## Constructors

### Constructor

```ts
new RabbitMqTransport(configuration): RabbitMqTransport;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:117](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L117)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `configuration` | [`RabbitMqTransportConfiguration`](../interfaces/RabbitMqTransportConfiguration.md) |

#### Returns

`RabbitMqTransport`

## Methods

### connect()

```ts
connect(options): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:138](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L138)

An optional function that will be called on startup. This gives a chance for the transport
to establish any connections to the underlying infrastructure.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `options` | [`TransportConnectionOptions`](../../bus-core/interfaces/TransportConnectionOptions.md) |

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`connect`](../../bus-core/interfaces/Transport.md#connect)

***

### deleteMessage()

```ts
deleteMessage(message): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:336](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L336)

Removes a message from the underlying transport. This will be called once a message has been
successfully handled by any of the message handling functions.

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `message` | [`TransportMessage`](../../bus-core/interfaces/TransportMessage.md)<`Message`> | The message to be removed from the transport |

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`deleteMessage`](../../bus-core/interfaces/Transport.md#deletemessage)

***

### disconnect()

```ts
disconnect(): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:161](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L161)

An optional function that will be called on shutdown. This gives a chance for the transport
to close any connections to the underlying infrastructure.

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`disconnect`](../../bus-core/interfaces/Transport.md#disconnect)

***

### fail()

```ts
fail(transportMessage): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:184](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L184)

Forwards

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `transportMessage` | [`TransportMessage`](../../bus-core/interfaces/TransportMessage.md)<`unknown`> | to the dead letter queue. The message must have been read in from the queue and have a receipt handle. |

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`fail`](../../bus-core/interfaces/Transport.md#fail)

***

### initialize()

```ts
initialize(): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:153](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L153)

An optional function that will be called when the service bus is starting. This is an
opportunity for the transport to see what messages need to be handled so that subscriptions
to the topics can be created.

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`initialize`](../../bus-core/interfaces/Transport.md#initialize)

***

### prepare()

```ts
prepare(coreDependencies): void;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:131](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L131)

An optional function that is called before startup that will provide core dependencies
to the transport. This can be used to fetch loggers, registries etc that are used
in initialization steps

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `coreDependencies` | [`CoreDependencies`](../../bus-core/interfaces/CoreDependencies.md) |

#### Returns

`void`

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`prepare`](../../bus-core/interfaces/Transport.md#prepare)

***

### publish()

```ts
publish<TEvent>(event, messageAttributes?): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:170](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L170)

Publishes an event to the underlying transport. This is generally done to a topic or some other
mechanism that consumers can subscribe themselves to

#### Type Parameters

| Type Parameter |
| ------ |
| `TEvent` *extends* [`Event`](../../bus-messages/classes/Event.md) |

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `event` | `TEvent` | A domain event to be published |
| `messageAttributes?` | [`MessageAttributes`](../../bus-messages/interfaces/MessageAttributes.md)<[`MessageAttributeMap`](../../bus-messages/interfaces/MessageAttributeMap.md), [`MessageAttributeMap`](../../bus-messages/interfaces/MessageAttributeMap.md)> | Options that control the behaviour around how the message is sent and additional information that travels with it. |

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`publish`](../../bus-core/interfaces/Transport.md#publish)

***

### readNextMessage()

```ts
readNextMessage(): Promise<
  | TransportMessage<Message>
| undefined>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:226](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L226)

Waits for the next consumed message. A message that can't be parsed is sent to the dead letter
queue and acked, and undefined is returned.

#### Returns

`Promise`<
| [`TransportMessage`](../../bus-core/interfaces/TransportMessage.md)<`Message`>
| `undefined`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`readNextMessage`](../../bus-core/interfaces/Transport.md#readnextmessage)

***

### returnMessage()

```ts
returnMessage(message): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:357](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L357)

Returns a message to the service queue after the delay from the retry strategy, or sends it to
the dead letter queue once it has been attempted `maxRetries` times.

The message is copied into a retry queue with a per-message TTL, and acked. When the TTL
expires, the retry queue dead-letters it back to the service queue.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `message` | [`TransportMessage`](../../bus-core/interfaces/TransportMessage.md)<`Message`> |

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`returnMessage`](../../bus-core/interfaces/Transport.md#returnmessage)

***

### send()

```ts
send<TCommand>(command, messageAttributes?): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:177](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L177)

Sends a command to the underlying transport. This is generally done to a topic or some other
mechanism that consumers can subscribe themselves to

#### Type Parameters

| Type Parameter |
| ------ |
| `TCommand` *extends* [`Command`](../../bus-messages/classes/Command.md) |

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `command` | `TCommand` | A domain command to be sent |
| `messageAttributes?` | [`MessageAttributes`](../../bus-messages/interfaces/MessageAttributes.md)<[`MessageAttributeMap`](../../bus-messages/interfaces/MessageAttributeMap.md), [`MessageAttributeMap`](../../bus-messages/interfaces/MessageAttributeMap.md)> | Options that control the behaviour around how the message is sent and additional information that travels with it. |

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`send`](../../bus-core/interfaces/Transport.md#send)

***

### start()

```ts
start(): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:203](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L203)

An optional method called on the transport when it should start consuming messages.

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`start`](../../bus-core/interfaces/Transport.md#start)

***

### stop()

```ts
stop(): Promise<void>;
```

Defined in: [packages/bus-rabbitmq/src/rabbitmq-transport.ts:216](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-rabbitmq/src/rabbitmq-transport.ts#L216)

An optional method called on the transport when it should no longer consume messages.

#### Returns

`Promise`<`void`>

#### Implementation of

[`Transport`](../../bus-core/interfaces/Transport.md).[`stop`](../../bus-core/interfaces/Transport.md#stop)
