нл:: Переплетение:: ExchangeContext
#include <src/lib/core/WeaveExchangeMgr.h>
Этот класс представляет текущий диалог ( ExchangeContext ) между двумя или более узлами.
Краткое содержание
Он определяет методы кодирования и передачи сообщений Weave внутри ExchangeContext с помощью различных транспортных механизмов, например TCP, UDP или Weave Reliable Messaging.
Публичные типы | |
---|---|
@34 { | перечисление |
@35 { | перечисление |
ConnectionClosedFunct )(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) | определение типаvoid(* Эта функция является обратным вызовом приложения, который вызывается при закрытии существующего соединения Weave. |
KeyErrorFunct )(ExchangeContext *ec, WEAVE_ERROR keyErr) | определение типаvoid(* Тип функции обработки ключевых сообщений об ошибках. |
MessageReceiveFunct )(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) | определение типаvoid(* Эта функция является обратным вызовом приложения для обработки полученного сообщения Weave. |
ResponseTimeoutFunct )(ExchangeContext *ec) | определение типаvoid(* Эта функция представляет собой обратный вызов приложения, который вызывается по истечении времени ожидания получения ответного сообщения. |
RetransmissionTimeoutFunct )(ExchangeContext *ec) | определение типаvoid(* Эта функция представляет собой обратный вызов приложения, который вызывается, когда истекло время ожидания повторной передачи ранее отправленного сообщения. |
Timeout | определение типаuint32_t Тип, используемый для выражения времени ожидания в этом ExchangeContext в миллисекундах. |
WRMPAckRcvdFunct )(ExchangeContext *ec, void *msgCtxt) | определение типаvoid(* Эта функция является обратным вызовом приложения, который вызывается при получении подтверждения для сообщения Weave, которое запросило его в рамках протокола надежного обмена сообщениями Weave. |
WRMPPauseRcvdFunct )(ExchangeContext *ec, uint32_t pauseTime) | определение типаvoid(* Эта функция представляет собой обратный вызов приложения, который вызывается при получении сообщения Throttle или сообщения отложенной доставки как часть протокола надежного обмена сообщениями Weave. |
WRMPSendErrorFunct )(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) | определение типаvoid(* Эта функция представляет собой обратный вызов приложения, который вызывается при возникновении ошибки при отправке сообщения Weave. |
Публичные атрибуты | |
---|---|
AllowDuplicateMsgs | bool Логический индикатор того, разрешены ли дублированные сообщения для данного обмена. |
AppState | void * Указатель на объект состояния, специфичный для приложения. |
Con | [ТОЛЬКО ДЛЯ ЧТЕНИЯ] Связанное соединение Weave. |
EncryptionType | uint8_t Тип шифрования, используемый при отправке сообщения. |
ExchangeId | uint16_t [ТОЛЬКО ДЛЯ ЧТЕНИЯ] Присвоенный идентификатор обмена. |
ExchangeMgr | [ТОЛЬКО ДЛЯ ЧТЕНИЯ] Владеющий менеджер по обмену. |
KeyId | uint16_t Ключ шифрования, используемый при отправке сообщения. |
OnAckRcvd | Обратный вызов приложения для получения подтверждения. |
OnConnectionClosed | |
OnDDRcvd | Обратный вызов приложения для полученного сообщения об отложенной доставке. |
OnKeyError | Эта функция представляет собой обратный вызов приложения, который вызывается, когда от узла получено ключевое сообщение об ошибке. |
OnMessageReceived | |
OnResponseTimeout | |
OnRetransmissionTimeout | |
OnSendError | Обратный вызов приложения при ошибке при отправке. |
OnThrottleRcvd | Обратный вызов приложения для полученного сообщения Throttle. |
PeerAddr | IPAddress [ТОЛЬКО ДЛЯ ЧТЕНИЯ] IP-адрес однорангового узла. |
PeerIntf | InterfaceId [ТОЛЬКО ДЛЯ ЧТЕНИЯ] Исходящий интерфейс, который будет использоваться при отправке сообщений партнеру. |
PeerNodeId | uint64_t [ТОЛЬКО ДЛЯ ЧТЕНИЯ] Идентификатор однорангового узла. |
PeerPort | uint16_t [ТОЛЬКО ДЛЯ ЧТЕНИЯ] Порт однорангового узла. |
ResponseTimeout | Максимальное время ожидания ответа (в миллисекундах); 0 отключает тайм-аут ответа. |
RetransInterval | uint32_t Время между повторными передачами (в миллисекундах); 0 отключает повторную передачу. |
mMsgProtocolVersion | uint16_t Версия протокола сообщений для ExchangeContext . |
mWRMPConfig | Конфигурация WRMP. |
Общественные функции | |
---|---|
Abort (void) | void Немедленно прервите контекст Exchange и освободите все ссылки на него. |
AddRef (void) | void Увеличьте счетчик ссылок для контекста обмена на единицу. |
AutoRequestAck () const | bool Возвращает, будет ли запрашиваться подтверждение при каждой отправке сообщения. |
CancelRetrans (void) | void Отмените механизм ретрансляции Trickle. |
Close (void) | void Грамотно закройте контекст обмена. |
EncodeExchHeader ( WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags) | Закодируйте заголовок обмена в буфер сообщений. |
GetAutoReleaseKey () const | bool Укажите, следует ли освободить ключ шифрования, связанный с обменом, при освобождении обмена. |
GetCurrentRetransmitTimeout (void) | uint32_t Получите текущий тайм-аут повторной передачи. |
GetPeerDescription (char *buf, uint32_t bufSize) const | void Создает строку, описывающую одноранговый узел и связанную с ним информацию об адресе/соединении. |
HandleTrickleMessage (const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo) | void Обработка небольших сообщений в контексте обмена. |
HasPeerRequestedAck (void) const | bool Определите, запросил ли партнер подтверждение хотя бы для одного сообщения в этом обмене. |
HasRcvdMsgFromPeer (void) const | bool Определите, было ли получено хотя бы одно сообщение на этом обмене от узла. |
IsAckPending (void) const | bool Определите, существует ли уже подтверждение, ожидающее отправки партнеру на этом обмене. |
IsConnectionClosed (void) const | bool Определите, имеет ли ExchangeContext связанный активный WeaveConnection . |
IsInitiator (void) const | bool Определите, является ли контекст инициатором обмена. |
IsResponseExpected (void) const | bool Определите, ожидается ли ответ на сообщения, отправленные по этому обмену. |
Release (void) | void Освободите ссылку на этот контекст обмена. |
SendCommonNullMessage (void) | Отправьте сообщение Common::Null. |
SendMessage (uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt) | Отправьте сообщение Weave на эту биржу. |
SendMessage (uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt) | Отправьте сообщение Weave на эту биржу. |
SetAckPending (bool inAckPending) | void Установите, если подтверждение должно быть отправлено обратно узлу на этом обмене. |
SetAutoReleaseKey (bool autoReleaseKey) | void Установите, должен ли ключ шифрования, связанный с обменом, освобождаться при освобождении обмена. |
SetAutoRequestAck (bool autoReqAck) | void Установите, следует ли запрашивать подтверждение при каждой отправке сообщения. |
SetConnectionClosed (bool inConnectionClosed) | void Установите бит флага kFlagConnectionClosed. |
SetDropAck (bool inDropAck) | void Установите, должен ли WeaveExchangeManager не отправлять подтверждения для этого контекста. |
SetInitiator (bool inInitiator) | void Установите бит флага kFlagInitiator. |
SetMsgRcvdFromPeer (bool inMsgRcvdFromPeer) | void Установите, если сообщение было получено от узла на этом обмене. |
SetPeerRequestedAck (bool inPeerRequestedAck) | void Установите, если подтверждение было запрошено в последнем сообщении, полученном в этом обмене. |
SetResponseExpected (bool inResponseExpected) | void Установите, ожидается ли ответ на этом обмене. |
SetShouldAutoReleaseConnection (bool autoReleaseCon) | void Установите, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена. |
SetupTrickleRetransmit (uint32_t retransInterval, uint8_t threshold, uint32_t timeout) | Настройте механизм повторной передачи, установив соответствующий интервал повторной передачи и порог повторной передачи. |
ShouldAutoReleaseConnection () const | bool Возвращает значение, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена. |
ShouldDropAck (void) const | bool Определите, должен ли WeaveExchangeManager отправлять подтверждение. |
StartTimerT (void) | Запустите механизм таймера периодической повторной передачи алгоритма ретрансляции Trickle. |
TeardownTrickleRetransmit (void) | void Отключите механизм повторной передачи Trickle, отменив периодические таймеры внутри Trickle и освободив буфер сообщений, содержащий сообщение Weave. |
UseEphemeralUDPPort (void) const | bool Возвращает значение, следует ли отправлять исходящие сообщения, отправленные через обмен, из локального эфемерного порта UDP. |
WRMPFlushAcks (void) | |
WRMPSendDelayedDelivery (uint32_t PauseTimeMillis, uint64_t DelayedNodeId) | Отправьте сообщение отложенной доставки, чтобы уведомить узел отправителя о том, что его ранее отправленное сообщение столкнется с ожидаемой задержкой перед доставкой получателю. |
WRMPSendThrottleFlow (uint32_t PauseTimeMillis) | Отправьте сообщение Throttle Flow равноправному узлу с просьбой ограничить отправку сообщений. |
Публичные типы
@34
@34
@35
@35
Характеристики | |
---|---|
kGetPeerDescription_MaxLength | Максимальная длина строки (включая символ NUL), возвращаемой GetPeerDescription() . |
СоединениеЗакрытоФункция
void(* ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr)
Эта функция является обратным вызовом приложения, который вызывается при закрытии существующего соединения Weave.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
KeyErrorFunct
void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)
Тип функции обработки ключевых сообщений об ошибках.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
СообщениеПолучитьФункция
void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
Эта функция является обратным вызовом приложения для обработки полученного сообщения Weave.
Подробности | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
|
ResponseTimeoutFunct
void(* ResponseTimeoutFunct)(ExchangeContext *ec)
Эта функция представляет собой обратный вызов приложения, который вызывается по истечении времени ожидания получения ответного сообщения.
Подробности | |||
---|---|---|---|
Параметры |
|
Функция повторной передачиTimeoutFunct
void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)
Эта функция представляет собой обратный вызов приложения, который вызывается по истечении времени ожидания повторной передачи ранее отправленного сообщения.
Подробности | |||
---|---|---|---|
Параметры |
|
Тайм-аут
uint32_t Timeout
Тип, используемый для выражения времени ожидания в этом ExchangeContext в миллисекундах.
ВРМПАккрквдфункт
void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)
Эта функция является обратным вызовом приложения, который вызывается при получении подтверждения для сообщения Weave, которое запросило его в рамках протокола надежного обмена сообщениями Weave.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
ВРМППаузаРквдФункт
void(* WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime)
Эта функция представляет собой обратный вызов приложения, который вызывается при получении сообщения Throttle или сообщения отложенной доставки как часть протокола надежного обмена сообщениями Weave.
Каждое из этих сообщений сопровождается значением времени (в миллисекундах), которое означает время приостановки отправки сообщений Weave в этом ExchangeContext .
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
Врмпсендеррорфункт
void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)
Эта функция представляет собой обратный вызов приложения, который вызывается при возникновении ошибки при отправке сообщения Weave.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
Публичные атрибуты
Алловдупликатемсгс
bool AllowDuplicateMsgs
Логический индикатор того, разрешены ли дублированные сообщения для данного обмена.
состояние приложения
void * AppState
Указатель на объект состояния, специфичный для приложения.
тип шифрования
uint8_t EncryptionType
Тип шифрования, используемый при отправке сообщения.
ExchangeId
uint16_t ExchangeId
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Присвоенный идентификатор обмена.
идентификатор ключа
uint16_t KeyId
Ключ шифрования, используемый при отправке сообщения.
OnConnectionClosed
ConnectionClosedFunct OnConnectionClosed
OnDDRcvd
WRMPPauseRcvdFunct OnDDRcvd
Обратный вызов приложения для полученного сообщения об отложенной доставке.
OnKeyError
KeyErrorFunct OnKeyError
Эта функция представляет собой обратный вызов приложения, который вызывается, когда от узла получено ключевое сообщение об ошибке.
OnMessageReceived
MessageReceiveFunct OnMessageReceived
OnResponseTimeout
ResponseTimeoutFunct OnResponseTimeout
Онретрансмиссионтаймаут
RetransmissionTimeoutFunct OnRetransmissionTimeout
OnThrottleRcvd
WRMPPauseRcvdFunct OnThrottleRcvd
Обратный вызов приложения для полученного сообщения Throttle.
Адрес узла
IPAddress PeerAddr
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] IP-адрес однорангового узла.
PeerIntf
InterfaceId PeerIntf
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Исходящий интерфейс, который будет использоваться при отправке сообщений партнеру.
(Имеет значение только для UDP.)
PeerNodeId
uint64_t PeerNodeId
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Идентификатор однорангового узла.
ПирПорт
uint16_t PeerPort
[ТОЛЬКО ДЛЯ ЧТЕНИЯ] Порт однорангового узла.
Таймаут ответа
Timeout ResponseTimeout
Максимальное время ожидания ответа (в миллисекундах); 0 отключает тайм-аут ответа.
РетрансИнтервал
uint32_t RetransInterval
Время между повторными передачами (в миллисекундах); 0 отключает повторную передачу.
Общественные функции
Прервать
void Abort( void )
Немедленно прервите контекст Exchange и освободите все ссылки на него.
ДобавитьСсылку
void AddRef( void )
Увеличьте счетчик ссылок для контекста обмена на единицу.
АвтозапросПодтверждение
bool AutoRequestAck() const
Возвращает, будет ли запрашиваться подтверждение при каждой отправке сообщения.
ОтменаРетранс
void CancelRetrans( void )
Отмените механизм ретрансляции Trickle.
Закрывать
void Close( void )
Грамотно закройте контекст обмена.
Этот вызов уменьшает счетчик ссылок и освобождает обмен, когда счетчик ссылок становится равным нулю.
КодироватьExchHeader
WEAVE_ERROR EncodeExchHeader( WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags )
Закодируйте заголовок обмена в буфер сообщений.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возвращаемые значения |
|
GetAutoReleaseKey
bool GetAutoReleaseKey() const
Укажите, следует ли освободить ключ шифрования, связанный с обменом, при освобождении обмена.
GetCurrentRetransmitTimeout
uint32_t GetCurrentRetransmitTimeout( void )
Получите текущий тайм-аут повторной передачи.
Это будет либо начальный, либо активный тайм-аут повторной передачи в зависимости от того, имеет ли ExchangeContext активный обмен сообщениями со своим одноранговым узлом.
Подробности | |
---|---|
Возврат | текущее время ретрансляции. |
GetPeerDescription
void GetPeerDescription( char *buf, uint32_t bufSize ) const
Создает строку, описывающую одноранговый узел и связанную с ним информацию об адресе/соединении.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
РучкаРучейСообщение
void HandleTrickleMessage( const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo )
Обработка небольших сообщений в контексте обмена.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
HasPeerRequestedAck
bool HasPeerRequestedAck( void ) const
Определите, запросил ли партнер подтверждение хотя бы для одного сообщения в этом обмене.
Подробности | |
---|---|
Возврат | Возвращает «истина», если запрошено подтверждение, иначе — «ложь». |
HasRcvdMsgFromPeer
bool HasRcvdMsgFromPeer( void ) const
Определите, было ли получено хотя бы одно сообщение на этом обмене от узла.
Подробности | |
---|---|
Возврат | Возвращает «истину», если сообщение получено, иначе — «ложь». |
Исаккожидание
bool IsAckPending( void ) const
Определите, существует ли уже подтверждение, ожидающее отправки партнеру на этом обмене.
IsConnectionClosed
bool IsConnectionClosed( void ) const
Определите, имеет ли ExchangeContext связанный активный WeaveConnection .
Подробности | |
---|---|
Возврат | Возвращает «истину», если соединение закрыто, иначе — «ложь». |
Исинициатор
bool IsInitiator( void ) const
Определите, является ли контекст инициатором обмена.
Подробности | |
---|---|
Возврат | Возвращает «истина», если это инициатор, иначе — «ложь». |
IsResponseExpected
bool IsResponseExpected( void ) const
Определите, ожидается ли ответ на сообщения, отправленные через этот обмен.
Подробности | |
---|---|
Возврат | Возвращает «истина», если ожидается ответ, иначе — «ложь». |
Выпускать
void Release( void )
Освободите ссылку на этот контекст обмена.
Если счетчик снизился до единицы, закройте контекст, сбросьте все обратные вызовы приложения и остановите все таймеры.
ОтправитьCommonNullMessage
WEAVE_ERROR SendCommonNullMessage( void )
Отправьте сообщение Common::Null.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Возвращаемые значения |
|
Отправить сообщение
WEAVE_ERROR SendMessage( uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt )
Отправьте сообщение Weave на эту биржу.
Подробности | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||
Возвращаемые значения |
|
Отправить сообщение
WEAVE_ERROR SendMessage( uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt )
Отправьте сообщение Weave на эту биржу.
Подробности | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||
Возвращаемые значения |
|
SetAckPending
void SetAckPending( bool inAckPending )
Установите, если подтверждение должно быть отправлено обратно узлу на этом обмене.
Подробности | |||
---|---|---|---|
Параметры |
|
SetAutoReleaseKey
void SetAutoReleaseKey( bool autoReleaseKey )
Установите, должен ли ключ шифрования, связанный с обменом, освобождаться при освобождении обмена.
Подробности | |||
---|---|---|---|
Параметры |
|
SetAutoRequestAck
void SetAutoRequestAck( bool autoReqAck )
Установите, следует ли запрашивать подтверждение при каждой отправке сообщения.
Подробности | |||
---|---|---|---|
Параметры |
|
SetConnectionClosed
void SetConnectionClosed( bool inConnectionClosed )
Установите бит флага kFlagConnectionClosed.
Этот флаг устанавливается, когда WeaveConnection, связанный с ExchangeContext, закрывается.
Подробности | |||
---|---|---|---|
Параметры |
|
SetDropAck
void SetDropAck( bool inDropAck )
Установите, должен ли WeaveExchangeManager не отправлять подтверждения для этого контекста.
Только для внутреннего использования и отладки.
Подробности | |||
---|---|---|---|
Параметры |
|
SetInitiator
void SetInitiator( bool inInitiator )
Установите бит флага kFlagInitiator.
Этот флаг устанавливается узлом, который инициирует обмен.
Подробности | |||
---|---|---|---|
Параметры |
|
SetMsgRcvdFromPeer
void SetMsgRcvdFromPeer( bool inMsgRcvdFromPeer )
Установите, если сообщение было получено от узла на этом обмене.
Подробности | |||
---|---|---|---|
Параметры |
|
SetPeerRequestedAck
void SetPeerRequestedAck( bool inPeerRequestedAck )
Установите, если подтверждение было запрошено в последнем сообщении, полученном в этом обмене.
Подробности | |||
---|---|---|---|
Параметры |
|
SetResponseExpected
void SetResponseExpected( bool inResponseExpected )
Установите, ожидается ли ответ на этом обмене.
Подробности | |||
---|---|---|---|
Параметры |
|
SetShouldAutoReleaseConnection
void SetShouldAutoReleaseConnection( bool autoReleaseCon )
Установите, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена.
Подробности | |||
---|---|---|---|
Параметры |
|
НастройкаTrickleRetransmit
WEAVE_ERROR SetupTrickleRetransmit( uint32_t retransInterval, uint8_t threshold, uint32_t timeout )
Настройте механизм повторной передачи, установив соответствующий интервал повторной передачи и порог повторной передачи.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
| ||||||
Возврат | WEAVE_NO_ERROR, если установка Trickle прошла успешно, в противном случае INET_ERROR отображается в WEAVE_ERROR. |
Долженауторелизеконнектион
bool ShouldAutoReleaseConnection() const
Возвращает значение, должно ли соединение Weave, связанное с обменом, освобождаться при освобождении обмена.
Должендропакк
bool ShouldDropAck( void ) const
Определите, должен ли WeaveExchangeManager отправлять подтверждение.
Только для внутреннего использования и отладки.
СтартТаймерТ
WEAVE_ERROR StartTimerT( void )
Запустите механизм таймера периодической повторной передачи алгоритма ретрансляции Trickle.
Подробности | |
---|---|
Возврат | WEAVE_NO_ERROR в случае успеха, в противном случае INET_ERROR отображается в WEAVE_ERROR. |
РазборкаРучкаПовторная передача
void TeardownTrickleRetransmit( void )
Отключите механизм повторной передачи Trickle, отменив периодические таймеры внутри Trickle и освободив буфер сообщений, содержащий сообщение Weave.
Использовать эфемерный UDPPort
bool UseEphemeralUDPPort( void ) const
Возвращает значение, следует ли отправлять исходящие сообщения, отправленные через обмен, из локального эфемерного порта UDP.
WRMPFlushAcks
WEAVE_ERROR WRMPFlushAcks( void )
WRMPSendDelayedDelivery
WEAVE_ERROR WRMPSendDelayedDelivery( uint32_t PauseTimeMillis, uint64_t DelayedNodeId )
Отправьте сообщение отложенной доставки, чтобы уведомить узел отправителя о том, что его ранее отправленное сообщение столкнется с ожидаемой задержкой перед доставкой получателю.
Одной из возможных причин задержки сообщений перед доставкой является то, что конечный узел получателя спит. Это сообщение потенциально генерируется подходящим промежуточным узлом на пути отправки, который имеет достаточно знаний о получателе, чтобы сделать вывод о задержке доставки. Получив это сообщение, отправитель перенастроит свои таймеры повторной передачи для сообщений, требующих обратного подтверждения.
Подробности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||
Возвращаемые значения |
|
WRMPSendThrottleFlow
WEAVE_ERROR WRMPSendThrottleFlow( uint32_t PauseTimeMillis )
Отправьте сообщение Throttle Flow равноправному узлу с просьбой ограничить отправку сообщений.
Подробности | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||||||
Возвращаемые значения |
|