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:104

Parameters

logger

ILogger

maxMsgRetryCount

number

Returns

MessageRetryManager

Methods

addRecentMessage()

addRecentMessage(to, id, message): void

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

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:278

Cancel pending phone request

Parameters

messageId

string

Returns

void


clear()

clear(): void

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

Returns

void


deleteBaseKey()

deleteBaseKey(addr, msgId): void

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

Parameters

addr

string

msgId

string

Returns

void


getRecentMessage()

getRecentMessage(to, id): undefined | RecentMessage

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

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:227

Get retry count for a message

Parameters

messageId

string

Returns

number


hasExceededMaxRetries()

hasExceededMaxRetries(messageId): boolean

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

Check if message has exceeded maximum retry attempts

Parameters

messageId

string

Returns

boolean


hasSameBaseKey()

hasSameBaseKey(addr, msgId, baseKey): boolean

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

Parameters

addr

string

msgId

string

baseKey

Uint8Array

Returns

boolean


incrementRetryCount()

incrementRetryCount(messageId): number

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

Increment retry counter for a message

Parameters

messageId

string

Returns

number


isMacError()

isMacError(errorCode): boolean

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

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:252

Mark retry as failed

Parameters

messageId

string

Returns

void


markRetrySuccess()

markRetrySuccess(messageId): void

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

Mark retry as successful

Parameters

messageId

string

Returns

void


parseRetryErrorCode()

parseRetryErrorCode(errorAttr): undefined | RetryReason

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

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

Parameters

errorAttr

undefined | string

Returns

undefined | RetryReason


saveBaseKey()

saveBaseKey(addr, msgId, baseKey): void

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

Parameters

addr

string

msgId

string

baseKey

Uint8Array

Returns

void


schedulePhoneRequest()

schedulePhoneRequest(messageId, callback, delay): void

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

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:141

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