nl::Weave::WeaveConnection

#include <src/lib/core/WeaveMessageLayer.h>

Weave Connection 類別的定義。

摘要

這代表指向另一個 Weave 節點的 TCP 或 BLE 連線。

公開類型

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
列舉
ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
此函式是在連線關閉時叫用的應用程式回呼。
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
此函式是連線設定完成時叫用的應用程式回呼。
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
此函式是應用程式回呼,透過 Weave 連線收到訊息時叫用。
NetworkType{
  kNetworkType_Unassigned = 0,
  kNetworkType_IP = 1,
  kNetworkType_BLE = 2
}
列舉
Weave 連線物件的網路類型。
ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err) typedef
void(*
收到 Weave 訊息時發生錯誤時,所叫用的應用程式回呼即為此函式。
State{
  kState_ReadyToConnect = 0,
  kState_Resolving = 1,
  kState_Connecting = 2,
  kState_EstablishingSession = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_Closed = 6
}
列舉
Weave 連線物件的 State 資訊。
TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
此函式是系統透過 Weave 連線接收通道資料封包時叫用的應用程式回呼。

公開屬性

AppState
void *
指向應用程式專屬狀態物件的指標。
AuthMode
WeaveAuthMode
[唯讀] 此驗證模式用於建立連線的預設加密金鑰。
DefaultEncryptionType
uint8_t
郵件的預設加密類型。
DefaultKeyId
uint16_t
傳送訊息時要使用的預設加密金鑰。
MessageLayer
[READ ONLY] 相關聯的 WeaveMessageLayer 物件。
NetworkType
uint8_t
[僅限閱讀] 相關端點的網路類型。
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[READ ONLY] 對等節點的 IP 位址。
PeerNodeId
uint64_t
[READ ONLY] 對等點的節點 ID。
PeerPort
uint16_t
[READ ONLY] 對等節點的通訊埠編號。
ReceiveEnabled
bool
[READ ONLY] 如果已啟用接收功能,則為 True,否則傳回 False。
SendDestNodeId
bool
如果透過此連線傳送的所有訊息都必須包含明確編碼的目的地節點 ID,則為 True,否則為 false。
SendSourceNodeId
bool
如果透過此連線傳送的所有訊息都必須包含明確編碼的來源節點 ID,則為「true」,否則傳回「false」。
State
uint8_t
[READ ONLY] WeaveConnection 物件的狀態,

公用函式

Abort(void)
void
執行以 TCP 或 BLE 為基礎的 WeaveConnection,不安全關閉,並捨棄可能傳入或傳出對等點的任何資料。
AddRef(void)
void
保留 WeaveConnection 物件的參照。
Close(void)
這個外掛程式能執行以 TCP 或 BLE 為基礎的 WeaveConnection 傳送非阻塞式關閉安全關閉,並傳送所有剩餘的外寄資料,再友善通知遠端主機已重設連線。
Close(bool suppressCloseLog)
這個外掛程式能執行以 TCP 或 BLE 為基礎的 WeaveConnection 傳送非阻塞式關閉安全關閉,並傳送所有剩餘的外寄資料,再友善通知遠端主機已重設連線。
Connect(uint64_t peerNodeId)
使用衍生自指定節點 ID 的架構 IP 位址,連線至 Weave 節點。
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
使用節點 ID 和/或 IP 位址連線至 Weave 節點。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
使用節點 ID 和/或特定介面的 IP 位址連線至 Weave 節點。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
使用節點 ID 和/或字串主機名稱連線至 Weave 節點。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
使用節點 ID 和/或字串對等位址連線至 Weave 節點。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
使用節點 ID 和/或字串對等位址連線至 Weave 節點。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
使用節點 ID 和/或主機名稱和通訊埠清單連線至 Weave 節點。
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
使用節點 ID 和/或主機名稱和通訊埠清單連線至 Weave 節點。
DisableKeepAlive(void)
DisableReceive(void)
void
停用透過這個 WeaveConnection 接收。
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
啟用透過這個 WeaveConnection 接收。
GetPeerAddressInfo(IPPacketInfo & addrInfo)
取得對等端的 IP 位址資訊。
GetPeerDescription(char *buf, size_t bufSize) const
void
建構一個字串,說明與連線相關聯的對等節點。
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
WeaveConnection 物件上的參考計數減少。
ResetUserTimeout(void)
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
透過已連線的連線傳送 Weave 訊息。
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
透過 Weave 連線傳送通道封包的函式。
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
設定連線逾時,以成功或傳回錯誤。
SetIdleTimeout(uint32_t timeoutMS)
設定基礎網路層連線的閒置逾時。
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
Shutdown(void)
執行安全的 TCP 傳送關閉,確保所有傳出資料皆已由對等點的 TCP 堆疊傳送及接收。

公開類型

@58

 @58
屬性
kGetPeerDescription_MaxLength

GetPeerDescription() 傳回的字串長度上限 (包括 NUL 字元)。

ConnectionClosedFunct

void(* ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

此函式是在連線關閉時叫用的應用程式回呼。

詳細說明
參數
[in] con
指向 WeaveConnection 物件的指標。
[in] conErr
連線關閉時發生 WEAVE_ERROR。

ConnectionCompleteFunct

void(* ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

此函式是連線設定完成時叫用的應用程式回呼。

詳細說明
參數
[in] con
指向 WeaveConnection 物件的指標。
[in] conErr
設定連線時發生 WEAVE_ERROR。

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

此函式是應用程式回呼,透過 Weave 連線收到訊息時叫用。

詳細說明
參數
[in] con
指向 WeaveConnection 物件的指標。
[in] msgInfo
指向包含訊息相關資訊的 WeaveMessageInfo 結構指標。
[in] msgBuf
指向保存訊息的 PacketBuffer 物件指標。

NetworkType

 NetworkType

Weave 連線物件的網路類型。

屬性
kNetworkType_BLE

BLE 網路類型。

kNetworkType_IP

TCP/IP 網路類型。

kNetworkType_Unassigned

未指派的聯播網類型。

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err)

收到 Weave 訊息時發生錯誤時,所叫用的應用程式回呼即為此函式。

詳細說明
參數
[in] con
指向 WeaveConnection 物件的指標。
[in] err
透過連線接收資料時發生 WEAVE_ERROR。

狀態

 State

Weave 連線物件的 State 資訊。

屬性
kState_Closed

連線關閉時的狀態。

kState_Connected

建立連線時的狀態。

kState_Connecting

嘗試連線時的狀態。

kState_EstablishingSession

建立安全工作階段時的狀態。

kState_ReadyToConnect

Weave 連線初始化後的狀態。

kState_Resolving

執行 DNS 名稱解析時的狀態,

kState_SendShutdown

連線關閉時的狀態。

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

此函式是系統透過 Weave 連線接收通道資料封包時叫用的應用程式回呼。

詳細說明
參數
[in] con
指向 WeaveConnection 物件的指標。
[in] msgInfo
指向 WeaveMessageInfo 物件的指標。
[in] msgBuf
指向包含收到的通道封包的 PacketBuffer 物件指標。

公開屬性

AppState

void * AppState

指向應用程式專屬狀態物件的指標。

AuthMode

WeaveAuthMode AuthMode

[唯讀] 此驗證模式用於建立連線的預設加密金鑰。

DefaultEncryptionType

uint8_t DefaultEncryptionType

郵件的預設加密類型。

DefaultKeyId

uint16_t DefaultKeyId

傳送訊息時要使用的預設加密金鑰。

MessageLayer

WeaveMessageLayer * MessageLayer

[READ ONLY] 相關聯的 WeaveMessageLayer 物件。

NetworkType

uint8_t NetworkType

[僅限閱讀] 相關端點的網路類型。

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[READ ONLY] 對等節點的 IP 位址。

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] 對等點的節點 ID。

PeerPort

uint16_t PeerPort

[READ ONLY] 對等節點的通訊埠編號。

ReceiveEnabled

bool ReceiveEnabled

[READ ONLY] 如果已啟用接收功能,則為 True,否則傳回 False。

SendDestNodeId

bool SendDestNodeId

如果透過此連線傳送的所有訊息都必須包含明確編碼的目的地節點 ID,則為 True,否則為 false。

SendSourceNodeId

bool SendSourceNodeId

如果透過此連線傳送的所有訊息都必須包含明確編碼的來源節點 ID,則為「true」,否則傳回「false」。

狀態

uint8_t State

[READ ONLY] WeaveConnection 物件的狀態,

公用函式

取消

void Abort(
  void
)

執行以 TCP 或 BLE 為基礎的 WeaveConnection,不安全關閉,並捨棄可能傳入或傳出對等點的任何資料。

Abort() 的呼叫會立即終止基礎連線。在這個時間點之後,WeaveConnection 物件就無法再用於進一步通訊。

呼叫 Abort() 可減少與 WeaveConnection 物件相關的參考計數,無論在呼叫方法時是否處於開放/啟用狀態。如果參照計數等於零,系統就會釋出與連線物件相關聯的資源。在這種情況下,應用程式不得與物件進一步互動。

另請參閱:
Shutdown()Abort()AddRef()Release()

AddRef

void AddRef(
  void
)

保留 WeaveConnection 物件的參照。

AddRef() 方法會增加與 WeaveConnection 物件相關聯的參考計數。每次呼叫 AddRef() 時,應用程式都會負責對 Release()Close()Abort() 呼叫。

關閉

WEAVE_ERROR Close(
  void
)

這個外掛程式能執行以 TCP 或 BLE 為基礎的 WeaveConnection 傳送非阻塞式關閉安全關閉,並傳送所有剩餘的外寄資料,再友善通知遠端主機已重設連線。

這個方法無法保證遠端對等端收到任何未在應用程式通訊協定層級確認的外寄郵件。無論是 TCP 或 BLE,基礎通訊協定堆疊都會盡力在重設連線前傳送任何待處理的傳出資料。如果是 TCP,則應在 Close() 前使用 Shutdown(),確認關閉連線前必須確認傳輸層訊息收據。BLE 連線沒有提供對等的 Shutdown()

如果是 BLE 連線,Close() 會關閉 WeaveConnection 並立即傳回,但可能會導致基礎 BLEEndPoint 物件延遲到所有傳出資料傳送為止。這是 Weave over BLE 傳輸通訊協定實作程序的副作用,目前位於 Weave BleLayer 內。

呼叫 Close() 後,WeaveConnection 物件就無法再用於進一步通訊,

呼叫 Close() 可減少與 WeaveConnection 物件相關聯的參考計數,無論在呼叫方法時是否處於開放/啟用狀態。如果參照計數等於零,系統就會釋出與連線物件相關聯的資源。在這種情況下,應用程式不得與物件進一步互動。

詳細說明
傳回
無條件提供 WEAVE_NO_ERROR
另請參閱:
Shutdown()Abort()AddRef()Release()

關閉

WEAVE_ERROR Close(
  bool suppressCloseLog
)

這個外掛程式能執行以 TCP 或 BLE 為基礎的 WeaveConnection 傳送非阻塞式關閉安全關閉,並傳送所有剩餘的外寄資料,再友善通知遠端主機已重設連線。

這個方法無法保證遠端對等端收到任何未在應用程式通訊協定層級確認的外寄郵件。無論是 TCP 或 BLE,基礎通訊協定堆疊都會盡力在重設連線前傳送任何待處理的傳出資料。如果是 TCP,則應在 Close() 前使用 Shutdown(),確認關閉連線前必須確認傳輸層訊息收據。BLE 連線沒有提供對等的 Shutdown()

如果是 BLE 連線,Close() 會關閉 WeaveConnection 並立即傳回,但可能會導致基礎 BLEEndPoint 物件延遲到所有傳出資料傳送為止。這是 Weave over BLE 傳輸通訊協定實作程序的副作用,目前位於 Weave BleLayer 內。

呼叫 Close() 後,WeaveConnection 物件就無法再用於進一步通訊,

呼叫 Close() 可減少與 WeaveConnection 物件相關聯的參考計數,無論在呼叫方法時是否處於開放/啟用狀態。如果參照計數等於零,系統就會釋出與連線物件相關聯的資源。在這種情況下,應用程式不得與物件進一步互動。

詳細說明
參數
[in] suppressCloseLog
如果需要隱藏記錄,傳回 true,否則傳回 false。
傳回
無條件提供 WEAVE_NO_ERROR
另請參閱:
Shutdown()Abort()AddRef()Release()

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

使用衍生自指定節點 ID 的架構 IP 位址,連線至 Weave 節點。

詳細說明
參數
[in] peerNodeId
對等互連的節點 ID。
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 推斷目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort
)

使用節點 ID 和/或 IP 位址連線至 Weave 節點。

詳細說明
參數
[in] peerNodeId
對等節點的節點 ID,kNodeIdNotSpecified,如果不明,則為 0。
[in] peerAddr
對等點的 IP 位址,IPAddress::Any (如果不明)。
[in] peerPort
對等點的選用通訊埠,預設為 WEAVE_PORT
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 推斷目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId intf
)

使用節點 ID 和/或特定介面的 IP 位址連線至 Weave 節點。

詳細說明
參數
[in] peerNodeId
對等節點的節點 ID,kNodeIdNotSpecified,如果不明,則為 0。
[in] authMode
對等互連的所需驗證模式。僅支援 CASE、PASE 和未驗證模式。
[in] peerAddr
對等點的 IP 位址,IPAddress::Any (如果不明)。
[in] peerPort
對等點的選用通訊埠,預設為 WEAVE_PORT
[in] intf
用來連線至對等節點的選用介面,預設為 INET_NULL_INTERFACEID
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 產生目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t defaultPort
)

使用節點 ID 和/或字串主機名稱連線至 Weave 節點。

如有提供,peerAddr 可以是下列任一值:


:

:

[]:

詳細說明
參數
[in] peerNodeId
對等節點的節點 ID,kNodeIdNotSpecified,如果不明,則為 0。
[in] authMode
對等互連的所需驗證模式。僅支援 CASE、PASE 和未驗證模式。
[in] peerAddr
以 NULL 結尾的 C 字串為對等點的地址或主機名稱。
[in] defaultPort
如未在 peerAddr 字串中提供,則會用於連線的選用預設通訊埠。
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 推斷目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint16_t defaultPort
)

使用節點 ID 和/或字串對等位址連線至 Weave 節點。

如有提供,peerAddr 可以是下列任一值:


:

:

[]:

詳細說明
參數
[in] peerNodeId
對等節點的節點 ID,kNodeIdNotSpecified,如果不明,則為 0。
[in] authMode
對等互連的所需驗證模式。僅支援 CASE、PASE 和未驗證模式。
[in] peerAddr
對等點的地址或主機名稱,做為非 NULL 結尾的 C 字串。
[in] peerAddrLen
PeerAddr 字串的長度。
[in] defaultPort
如未在 peerAddr 字串中提供,則會用於連線的選用預設通訊埠。
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 推斷目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint8_t dnsOptions,
  uint16_t defaultPort
)

使用節點 ID 和/或字串對等位址連線至 Weave 節點。

如有提供,peerAddr 可以是下列任一值:


:

:

[]:

詳細說明
參數
[in] peerNodeId
對等節點的節點 ID,kNodeIdNotSpecified,如果不明,則為 0。
[in] authMode
對等互連的所需驗證模式。僅支援 CASE、PASE 和未驗證模式。
[in] peerAddr
對等點的地址或主機名稱,做為非 NULL 結尾的 C 字串。
[in] peerAddrLen
PeerAddr 字串的長度。
[in] dnsOptions
控制主機名稱解析執行方式的整數值。值應該是 #::nl::Inet::DNSOptions 列舉中的一或多個值的 OR。
[in] defaultPort
如未在 peerAddr 字串中提供,則會用於連線的選用預設通訊埠。
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 推斷目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  InterfaceId intf
)

使用節點 ID 和/或主機名稱和通訊埠清單連線至 Weave 節點。

詳細說明
參數
[in] peerNodeId
對等互連的節點 ID。
[in] authMode
用於連線的驗證模式。
[in] hostPortList
主機名稱和通訊埠的清單。
[in] intf
用來連線至對等節點的選用介面,預設為 INET_NULL_INTERFACEID
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 推斷目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

連結

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  uint8_t dnsOptions,
  InterfaceId intf
)

使用節點 ID 和/或主機名稱和通訊埠清單連線至 Weave 節點。

詳細說明
參數
[in] peerNodeId
對等互連的節點 ID。
[in] authMode
用於連線的驗證模式。
[in] hostPortList
主機名稱和通訊埠的清單。
[in] dnsOptions
控制主機名稱解析執行方式的整數值。值應該是 #::nl::Inet::DNSOptions 列舉中的一或多個值的 OR。
[in] intf
用來連線至對等節點的選用介面,預設為 INET_NULL_INTERFACEID
傳回值
WEAVE_NO_ERROR
時,系統會立即中斷對等連線狀態。
WEAVE_ERROR_INCORRECT_STATE
WeaveConnection 狀態不正確。
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
WEAVE_ERROR_INVALID_ADDRESS
如果無法從節點 ID 推斷目的地位址。
other
TCPEndPoint 連線作業產生的 Inet 層錯誤。

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive

在基礎 TCP 連線上停用 TCP 保持運作探測。

注意:這個方法只能在由 TCP 連線支援的 Weave 連線上呼叫。只有在連線處於允許傳送的狀態時,才能呼叫此方法。

如果連線未啟用 Keepalives,這個方法就不會有任何作用。

詳細說明
傳回值
WEAVE_NO_ERROR
則會在您成功停用連線的 TCP 保持運作探測時失敗時執行。
WEAVE_ERROR_NOT_IMPLEMENTED
是否為不相容的端點 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件在傳送訊息的狀態不正確,
other
與 TCP 端點相關的內層錯誤會啟用 Keepalive 作業。

DisableReceive

void DisableReceive(
  void
)

停用透過這個 WeaveConnection 接收。

應用程式會使用這個方法表示它尚未準備好透過 TCP 連線接收任何抵達資料。為了重新啟用接收功能,應用程式必須呼叫 EnableReceive(),允許 WeaveConnection 以叫用適當的回呼的方式遞交任何已接收的資料。

另請參閱:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive

在基礎 TCP 連線上啟用 TCP 保持運作探測。

注意:-這個方法只能在由 TCP 連線支援的 Weave 連線上呼叫。-只有在連線處於允許傳送狀態時,才能呼叫此方法。

詳細說明
參數
[in] interval
Keepalive 探測作業之間的時間間隔 (以秒為單位)。此值也會控制從最後一筆資料封包傳送到第一個保持運作探測器之間的傳輸時間。
[in] timeoutCount
連線失敗前未確認的探測數量上限。

-您可以多次呼叫這個方法,調整保持運作間隔或逾時計數。

詳細說明
傳回值
WEAVE_NO_ERROR
成功啟用連線的 TCP 保持運作探測功能
WEAVE_ERROR_NOT_IMPLEMENTED
是否為不相容的端點 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件在傳送訊息的狀態不正確,
other
與 TCP 端點相關的內層錯誤會啟用 Keepalive 作業。

EnableReceive

void EnableReceive(
  void
)

啟用透過這個 WeaveConnection 接收。

應用程式會使用此方法向 WeaveConnection 物件指出其已準備好接收透過 TCP 連線傳送的任何資料。

另請參閱:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

取得對等端的 IP 位址資訊。

詳細說明
參數
[out] addrInfo
IPPacketInfo 物件的參照。
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NOT_IMPLEMENTED
如果在不相容的端點 (例如BLE)。

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

建構一個字串,說明與連線相關聯的對等節點。

詳細說明
參數
[in] buf
指向應寫入字串的緩衝區指標。提供的緩衝區至少應和 kGetPeerDescription_MaxLength 一樣大。如果指定的緩衝區越小,字串就會被截斷,以符合大小。在任何情況下,輸出結果都會包含一個 NUL 終止字元。
[in] bufSize
緩衝區指向的緩衝區大小。

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

發布

void Release(
  void
)

WeaveConnection 物件上的參考計數減少。

Release() 方法會減少與 WeaveConnection 物件相關聯的參考計數。如果參照計數變成零,系統就會關閉連線並釋出連線物件。在這種情況下,應用程式不得與物件進一步互動。

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout

將 TCP 使用者逾時通訊端選項重設為系統預設值。

注意:-這個方法只能在由 TCP 連線支援的 Weave 連線上呼叫。-只有在連線處於允許傳送狀態時,才能呼叫此方法。

-如果尚未在連線上設定使用者逾時,這個方法就不會執行任何動作。

詳細說明
傳回值
WEAVE_NO_ERROR
,在成功重設 TCP 使用者連線時逾時。
WEAVE_ERROR_NOT_IMPLEMENTED
是否為不相容的端點 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件在傳送訊息的狀態不正確,
other
與 TCP 端點重設 TCP 使用者逾時相關的內層錯誤。

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

透過已連線的連線傳送 Weave 訊息。

詳細說明
參數
[in] msgInfo
指向 WeaveMessageInfo 物件的指標。
[in] msgBuf
指向要傳送的封包的 PacketBuffer 物件指標。
傳回值
WEAVE_NO_ERROR
順利將訊息向下傳送至網路層
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件在傳送訊息的狀態不正確,
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
如未指定目的地節點 ID
WEAVE_ERROR_SENDING_BLOCKED
訊息傳送時間太長。
other
與特定端點傳送作業相關的內層錯誤。

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

透過 Weave 連線傳送通道封包的函式。

透過已建立的連線傳送具有通道的 Weave 訊息。

詳細說明
參數
[in] msgInfo
指向 WeaveMessageInfo 物件的指標。
[in] msgBuf
指向要傳送的封包的 PacketBuffer 物件指標。
傳回值
WEAVE_NO_ERROR
順利將訊息向下傳送至網路層
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件在傳送訊息的狀態不正確,
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
如未指定目的地節點 ID
WEAVE_ERROR_SENDING_BLOCKED
訊息傳送時間太長。
other
與特定端點傳送作業相關的內層錯誤。

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

設定連線逾時,以成功或傳回錯誤。

詳細說明
參數
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

設定基礎網路層連線的閒置逾時。

詳細說明
參數
[in] timeoutMS
逾時時間 (以毫秒為單位)。
傳回值
WEAVE_NO_ERROR
連線的閒置逾時設定。
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件未處於正確接收訊息的狀態,

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout

設定 TCP 使用者逾時通訊端選項。

如果該值大於 0,則指定在 TCP 強制關閉對應的連線之前,傳輸的資料可能會保持未確認的時間上限 (以毫秒為單位)。如果選項值指定為 0,TCP 將使用系統預設值。詳情請參閱 RFC 5482。

詳細說明
參數
[in] userTimeoutMillis
Tcp 使用者逾時值 (以毫秒為單位)。

注意:-這個方法只能在由 TCP 連線支援的 Weave 連線上呼叫。-只有在連線處於允許傳送狀態時,才能呼叫此方法。

-您可以多次呼叫這個方法,以調整 TCP 使用者逾時。

詳細說明
傳回值
WEAVE_NO_ERROR
則會在連線成功時設定 TCP 使用者逾時。
WEAVE_ERROR_NOT_IMPLEMENTED
是否為不相容的端點 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件在傳送訊息的狀態不正確,
other
與 TCP 使用者逾時的 TCP 端點設定相關的內層錯誤。

關機

WEAVE_ERROR Shutdown(
  void
)

執行安全的 TCP 傳送關閉,確保所有傳出資料皆已由對等點的 TCP 堆疊傳送及接收。

就大部分 (但非全部) 的 TCP 實作而言,接收傳送關閉會造成遠端主機一併關閉連線端,導致連線關閉。後續對 Close() 的呼叫會終止 WeaveConnection

詳細說明
傳回值
WEAVE_NO_ERROR
您會在成功關閉 TCP 連線的情況下關閉 TCP 連線。
WEAVE_ERROR_NOT_IMPLEMENTED
是否為不相容的端點 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件在啟動關閉前未處於正確狀態,則啟動關閉程序。
other
與特定端點關閉作業相關的內層錯誤。
另請參閱:
Close()Abort()