Options
All
  • Public
  • Public/Protected
  • All
Menu

Class MqttMessageQueue

Message queue that sends and receives messages via MQTT message broker.

MQTT is a popular light-weight protocol to communicate IoT devices.

Configuration parameters

  • topic: name of MQTT topic to subscribe
  • connection(s):
    • discovery_key: (optional) a key to retrieve the connection from IDiscovery
    • host: host name or IP address
    • port: port number
    • uri: resource URI or connection string with all parameters in it
  • credential(s):
    • store_key: (optional) a key to retrieve the credentials from ICredentialStore
    • username: user name
    • password: user password

References

  • *:logger:*:*:1.0 (optional) ILogger components to pass log messages
  • *:counters:*:*:1.0 (optional) ICounters components to pass collected measurements
  • *:discovery:*:*:1.0 (optional) IDiscovery services to resolve connections
  • *:credential-store:*:*:1.0 (optional) Credential stores to resolve credentials
see

[[MessageQueue]]

see

[[MessagingCapabilities]]

Example

let queue = new MqttMessageQueue("myqueue");
queue.configure(ConfigParams.fromTuples(
  "topic", "mytopic",
  "connection.protocol", "mqtt"
  "connection.host", "localhost"
  "connection.port", 1883
));

queue.open("123", (err) => {
    ...
});

queue.send("123", new MessageEnvelop(null, "mymessage", "ABC"));

queue.receive("123", (err, message) => {
    if (message != null) {
       ...
       queue.complete("123", message);
    }
});

Hierarchy

  • MessageQueue
    • MqttMessageQueue

Implements

  • IMessageQueue
  • IReferenceable
  • IConfigurable

Index

Constructors

constructor

Properties

Protected _capabilities

_capabilities: MessagingCapabilities

Protected _connectionResolver

_connectionResolver: ConnectionResolver

Protected _counters

_counters: CompositeCounters

Protected _credentialResolver

_credentialResolver: CredentialResolver

Protected _logger

_logger: CompositeLogger

Protected _name

_name: string

Methods

abandon

  • abandon(message: MessageEnvelop, callback: function): void
  • Returnes message into the queue and makes it available for all subscribers to receive it again. This method is usually used to return a message which could not be processed at the moment to repeat the attempt. Messages that cause unrecoverable errors shall be removed permanently or/and send to dead letter queue.

    Important: This method is not supported by MQTT.

    Parameters

    • message: MessageEnvelop

      a message to return.

    • callback: function

      (optional) callback function that receives an error or null for success.

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

beginListen

  • beginListen(correlationId: string, receiver: IMessageReceiver): void
  • Parameters

    • correlationId: string
    • receiver: IMessageReceiver

    Returns void

clear

  • clear(correlationId: string, callback: function): void
  • Clears component state.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • callback: function

      callback function that receives error or null no errors occured.

        • (err?: any): void
        • Parameters

          • Optional err: any

          Returns void

    Returns void

close

  • close(correlationId: string, callback: function): void
  • Closes component and frees used resources.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • callback: function

      callback function that receives error or null no errors occured.

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

complete

  • complete(message: MessageEnvelop, callback: function): void
  • Permanently removes a message from the queue. This method is usually used to remove the message after successful processing.

    Important: This method is not supported by MQTT.

    Parameters

    • message: MessageEnvelop

      a message to remove.

    • callback: function

      (optional) callback function that receives an error or null for success.

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

configure

  • configure(config: ConfigParams): void
  • Parameters

    • config: ConfigParams

    Returns void

endListen

  • endListen(correlationId: string): void
  • Ends listening for incoming messages. When this method is call listen unblocks the thread and execution continues.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    Returns void

getCapabilities

  • getCapabilities(): MessagingCapabilities
  • Returns MessagingCapabilities

getName

  • getName(): string
  • Returns string

isOpen

  • isOpen(): boolean
  • Checks if the component is opened.

    Returns boolean

    true if the component has been opened and false otherwise.

listen

  • listen(correlationId: string, receiver: IMessageReceiver): void
  • Listens for incoming messages and blocks the current thread until queue is closed.

    see

    [[IMessageReceiver]]

    see

    receive

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • receiver: IMessageReceiver

      a receiver to receive incoming messages.

    Returns void

moveToDeadLetter

  • moveToDeadLetter(message: MessageEnvelop, callback: function): void
  • Permanently removes a message from the queue and sends it to dead letter queue.

    Important: This method is not supported by MQTT.

    Parameters

    • message: MessageEnvelop

      a message to be removed.

    • callback: function

      (optional) callback function that receives an error or null for success.

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

open

  • open(correlationId: string, callback?: function): void
  • Parameters

    • correlationId: string
    • Optional callback: function
        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

Protected openWithParams

  • openWithParams(correlationId: string, connection: ConnectionParams, credential: CredentialParams, callback: function): void
  • Opens the component with given connection and credential parameters.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • connection: ConnectionParams

      connection parameters

    • credential: CredentialParams

      credential parameters

    • callback: function

      callback function that receives error or null no errors occured.

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

peek

  • peek(correlationId: string, callback: function): void
  • Peeks a single incoming message from the queue without removing it. If there are no messages available in the queue it returns null.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • callback: function

      callback function that receives a message or error.

        • (err: any, result: MessageEnvelop): void
        • Parameters

          • err: any
          • result: MessageEnvelop

          Returns void

    Returns void

peekBatch

  • peekBatch(correlationId: string, messageCount: number, callback: function): void
  • Peeks multiple incoming messages from the queue without removing them. If there are no messages available in the queue it returns an empty list.

    Important: This method is not supported by MQTT.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • messageCount: number

      a maximum number of messages to peek.

    • callback: function

      callback function that receives a list with messages or error.

        • (err: any, result: MessageEnvelop[]): void
        • Parameters

          • err: any
          • result: MessageEnvelop[]

          Returns void

    Returns void

readMessageCount

  • readMessageCount(callback: function): void
  • Reads the current number of messages in the queue to be delivered.

    Parameters

    • callback: function

      callback function that receives number of messages or error.

        • (err: any, count: number): void
        • Parameters

          • err: any
          • count: number

          Returns void

    Returns void

receive

  • receive(correlationId: string, waitTimeout: number, callback: function): void
  • Receives an incoming message and removes it from the queue.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • waitTimeout: number

      a timeout in milliseconds to wait for a message to come.

    • callback: function

      callback function that receives a message or error.

        • (err: any, result: MessageEnvelop): void
        • Parameters

          • err: any
          • result: MessageEnvelop

          Returns void

    Returns void

renewLock

  • renewLock(message: MessageEnvelop, lockTimeout: number, callback?: function): void
  • Renews a lock on a message that makes it invisible from other receivers in the queue. This method is usually used to extend the message processing time.

    Important: This method is not supported by MQTT.

    Parameters

    • message: MessageEnvelop

      a message to extend its lock.

    • lockTimeout: number

      a locking timeout in milliseconds.

    • Optional callback: function

      (optional) callback function that receives an error or null for success.

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

send

  • send(correlationId: string, envelop: MessageEnvelop, callback?: function): void
  • Sends a message into the queue.

    Parameters

    • correlationId: string

      (optional) transaction id to trace execution through call chain.

    • envelop: MessageEnvelop
    • Optional callback: function

      (optional) callback function that receives error or null for success.

        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

sendAsObject

  • sendAsObject(correlationId: string, messageType: string, message: any, callback?: function): void
  • Parameters

    • correlationId: string
    • messageType: string
    • message: any
    • Optional callback: function
        • (err: any): void
        • Parameters

          • err: any

          Returns void

    Returns void

setReferences

  • setReferences(references: IReferences): void
  • Parameters

    • references: IReferences

    Returns void

Protected subscribe

  • subscribe(): void

toString

  • toString(): string
  • Returns string

Generated using TypeDoc