@qualithm/mqtt-wire - v0.1.5
    Preparing search index...

    Class TopicAliasManager

    Manages topic aliases for both directions (outbound and inbound).

    • Outbound aliases: Client assigns aliases when publishing to server
    • Inbound aliases: Server assigns aliases when publishing to client

    Maximum values are negotiated during connection:

    • Client's topicAliasMaximum in CONNECT → server's outbound limit
    • Server's topicAliasMaximum in CONNACK → client's outbound limit
    Index

    Constructors

    • Create a topic alias manager.

      Parameters

      • outboundMaximum: number = 0

        Maximum outbound alias (from CONNACK)

      • inboundMaximum: number = 0

        Maximum inbound alias (from our CONNECT)

      Returns TopicAliasManager

    Properties

    inbound: TopicAliasMap

    Aliases for server → client (limited by CONNECT topicAliasMaximum)

    outbound: TopicAliasMap

    Aliases for client → server (limited by CONNACK topicAliasMaximum)

    Methods

    • Get or assign an outbound alias for a topic.

      Returns existing alias if topic is already mapped, or assigns a new alias if slots are available. Returns undefined if aliases are disabled or all slots are used.

      Parameters

      • topic: string

        Topic to get/assign alias for

      Returns OutboundAliasResult | undefined

      Object with alias and whether topic should be sent

    • Resolve an inbound PUBLISH's topic using aliases.

      According to MQTT 5.0 §3.3.2.3.4:

      • If topic is non-empty and alias present: set alias → topic
      • If topic is empty and alias present: lookup alias
      • If topic is empty and no alias: protocol error

      Parameters

      • topic: string

        Topic from PUBLISH packet (may be empty)

      • Optionalalias: number

        Topic alias from PUBLISH properties (optional)

      Returns string

      Resolved topic name

      TopicAliasError if resolution fails