Skip to main content

MessageRetryManager

amiudmodz


amiudmodz / MessageRetryManager

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