Skip to main content

Class: MessageRetryManager

Defined in: src/Utils/message-retry-manager.ts:65

Constructors

new MessageRetryManager()

new MessageRetryManager(logger, maxMsgRetryCount): MessageRetryManager

Defined in: src/Utils/message-retry-manager.ts:99

Parameters

logger

ILogger

maxMsgRetryCount

number

Returns

MessageRetryManager

Methods

addRecentMessage()

addRecentMessage(to, id, message): void

Defined in: src/Utils/message-retry-manager.ts:109

Add a recent message to the cache for retry handling

Parameters

to

string

id

string

message

IMessage

Returns

void


cancelPendingPhoneRequest()

cancelPendingPhoneRequest(messageId): void

Defined in: src/Utils/message-retry-manager.ts:273

Cancel pending phone request

Parameters

messageId

string

Returns

void


getRecentMessage()

getRecentMessage(to, id): undefined | RecentMessage

Defined in: src/Utils/message-retry-manager.ts:126

Get a recent message from the cache

Parameters

to

string

id

string

Returns

undefined | RecentMessage


getRetryCount()

getRetryCount(messageId): number

Defined in: src/Utils/message-retry-manager.ts:222

Get retry count for a message

Parameters

messageId

string

Returns

number


hasExceededMaxRetries()

hasExceededMaxRetries(messageId): boolean

Defined in: src/Utils/message-retry-manager.ts:229

Check if message has exceeded maximum retry attempts

Parameters

messageId

string

Returns

boolean


incrementRetryCount()

incrementRetryCount(messageId): number

Defined in: src/Utils/message-retry-manager.ts:213

Increment retry counter for a message

Parameters

messageId

string

Returns

number


isMacError()

isMacError(errorCode): boolean

Defined in: src/Utils/message-retry-manager.ts:206

Check if an error code indicates a MAC failure

Parameters

errorCode

undefined | RetryReason

Returns

boolean


markRetryFailed()

markRetryFailed(messageId): void

Defined in: src/Utils/message-retry-manager.ts:247

Mark retry as failed

Parameters

messageId

string

Returns

void


markRetrySuccess()

markRetrySuccess(messageId): void

Defined in: src/Utils/message-retry-manager.ts:236

Mark retry as successful

Parameters

messageId

string

Returns

void


parseRetryErrorCode()

parseRetryErrorCode(errorAttr): undefined | RetryReason

Defined in: src/Utils/message-retry-manager.ts:185

Parse error code from retry receipt's retry node. Returns undefined if no error code is present.

Parameters

errorAttr

undefined | string

Returns

undefined | RetryReason


schedulePhoneRequest()

schedulePhoneRequest(messageId, callback, delay): void

Defined in: src/Utils/message-retry-manager.ts:257

Schedule a phone request with delay

Parameters

messageId

string

callback

() => void

delay

number = PHONE_REQUEST_DELAY

Returns

void


shouldRecreateSession()

shouldRecreateSession(jid, hasSession, errorCode?): object

Defined in: src/Utils/message-retry-manager.ts:136

Check if a session should be recreated based on retry count, history, and error code. MAC errors (codes 4 and 7) trigger immediate session recreation regardless of timeout.

Parameters

jid

string

hasSession

boolean

errorCode?

RetryReason

Returns

object

reason

reason: string

recreate

recreate: boolean