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 連線物件的狀態。
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
[READ ONLY] 相關終點的網路類型。
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 連線物件的狀態。

屬性
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

[READ ONLY] 相關終點的網路類型。

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 BleLayer 內現有的 BLE 傳輸通訊協定實作 Weave 之副作用。

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

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

詳細資料
傳回
另請參閱:
Shutdown()Abort()AddRef()Release()

關閉

WEAVE_ERROR Close(
  bool suppressCloseLog
)

對基於 TCP 或 BLE 的 WeaveConnection 執行非阻塞式安全關閉,先傳送所有剩餘的外送資料,再通知遠端主機我們重設連線。

這個方法無法保證遠端對等點已接收未在應用程式通訊協定層級確認的任何外寄郵件。對於 TCP 和 BLE 而言,基礎通訊協定堆疊會盡可能在重設連線之前傳送任何待處理的外送資料。如果是 TCP,如果在關閉連線前需要確認傳輸層訊息收據,請在 Close() 前使用 Shutdown()。BLE 連線沒有提供對等的 Shutdown()

如果是以 BLE 為基礎的連線,Close() 會關閉 WeaveConnection 並立即傳回,但可能會使基礎 BLEEndPoint 物件暫時保留到所有傳出資料為止。這是 Weave BleLayer 內現有的 BLE 傳輸通訊協定實作 Weave 之副作用。

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

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

詳細資料
參數
[in] suppressCloseLog
如果需要隱藏記錄,則為 true,否則傳回 false。
傳回
另請參閱:
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 連線作業產生的內層錯誤。

連線

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 連線作業產生的內層錯誤。

連線

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 連線作業產生的內層錯誤。

連線

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 連線作業產生的內層錯誤。

連線

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 連線作業產生的內層錯誤。

連線

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 連線作業產生的內層錯誤。

連線

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 連線作業產生的內層錯誤。

連線

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 連線作業產生的內層錯誤。

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive.

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

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

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

詳細資料
傳回值
WEAVE_NO_ERROR
,即可在連線上成功停用 TCP Keepalive 探測器。
WEAVE_ERROR_NOT_IMPLEMENTED
如果為不相容的端點叫用此函式 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
表示 WeaveConnection 物件未處於傳送訊息的狀態。
other
與 TCP 端點相關的內層錯誤會啟用保持運作作業。

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
保持運作探測的間隔 (以秒為單位)。這個值也會控制從最後一項資料封包傳送到第一次保持運作探測之間的傳輸時間。
[in] timeoutCount
判定連線失敗前的未確認探測次數上限。

- 可以多次呼叫此方法來調整保持運作間隔或逾時計數。

詳細資料
傳回值
WEAVE_NO_ERROR
成功啟用連線的 TCP 保持運作探測。
WEAVE_ERROR_NOT_IMPLEMENTED
如果為不相容的端點叫用此函式 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
表示 WeaveConnection 物件未處於傳送訊息的狀態。
other
與 TCP 端點相關的內層錯誤會啟用保持運作作業。

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
以 buf 指向的緩衝區大小。

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 連線。
WEAVE_ERROR_NOT_IMPLEMENTED
如果為不相容的端點叫用此函式 (例如BLE)。
WEAVE_ERROR_INCORRECT_STATE
在啟動關閉前,WeaveConnection 物件的狀態不正確。
other
與特定端點關閉作業相關的內層錯誤。
另請參閱:
Close()Abort()