透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::編織::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 連線收到 Tunneled 資料封包時叫用的應用程式回呼。

公開屬性

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

連線完成函式

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

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

詳情
參數
[in] con
指向 WeaveConnection 物件的指標。
[in] conErr
連線設定期間發生 WEAVE_ERROR 問題。

訊息接收

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 連線收到 Tunneled 資料封包時叫用的應用程式回呼。

詳情
參數
[in] con
指向 WeaveConnection 物件的指標。
[in] msgInfo
指向 WeaveMessageInfo 物件的指標。
[in] msgBuf
指向已接收通道封包的 PacketBuffer 物件指標。

公開屬性

應用程式狀態

void * AppState

指向應用程式特定狀態物件的指標。

AuthMode

WeaveAuthMode AuthMode

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

預設加密類型

uint8_t DefaultEncryptionType

郵件的預設加密類型。

預設金鑰 ID

uint16_t DefaultKeyId

傳送郵件時使用的預設加密金鑰。

訊息圖層

WeaveMessageLayer * MessageLayer

[唯讀] 相關聯的 WeaveMessageLayer 物件。

NetworkType

uint8_t NetworkType

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

連線中斷

ConnectionClosedFunct OnConnectionClosed

OnOn 完成

ConnectionCompleteFunct OnConnectionComplete

收到訊息

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

同類應用程式

IPAddress PeerAddr

[僅限讀取] 對等節點的 IP 位址。

對等節點 ID

uint64_t PeerNodeId

[唯讀] 對等節點的節點 ID。

對等通訊埠

uint16_t PeerPort

[唯讀] 對等節點的通訊埠編號。

接收

bool ReceiveEnabled

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

傳送節點節點 ID

bool SendDestNodeId

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

傳送來源節點 ID

bool SendSourceNodeId

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

狀態

uint8_t State

[唯讀] WeaveConnection 物件的狀態。

公用函式

取消

void Abort(
  void
)

執行以 TCP 或 BLE 為基礎的 WeaveConnection 不合理的關閉要求,並捨棄對對等互連傳出或正在傳輸的任何資料。

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

呼叫 Abort() 會減少與 WeaveConnection 物件相關聯的參照計數,無論該方法在呼叫方法時是否開啟/啟用。如果參照結果的總數為 0,系統就會釋出與連線物件相關聯的資源。如果發生這種情形,應用程式就不需再與物件互動。

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

新增 Reff

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 並立即傳回,但可能會導致所有 BentEndPoint 物件一直傳送,直到所有傳送資料都傳送為止。這是 Weave over BLE 傳輸通訊協定內存在的副作用,這是 Weave BleLayer 中現有的 BLE 傳輸通訊協定實作。

呼叫 Close() 後,即無法使用 WeaveConnection 物件進一步通訊。

呼叫 Close() 會減少與 WeaveConnection 物件相關聯的參照計數,無論該方法在呼叫方法時是否開啟/啟用。如果參照結果的總數為 0,系統就會釋出與連線物件相關聯的資源。如果發生這種情形,應用程式就不需再與物件互動。

詳情
傳回
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 並立即傳回,但可能會導致所有 BentEndPoint 物件一直傳送,直到所有傳送資料都傳送為止。這是 Weave over BLE 傳輸通訊協定內存在的副作用,這是 Weave BleLayer 中現有的 BLE 傳輸通訊協定實作。

呼叫 Close() 後,即無法使用 WeaveConnection 物件進一步通訊。

呼叫 Close() 會減少與 WeaveConnection 物件相關聯的參照計數,無論該方法在呼叫方法時是否開啟/啟用。如果參照結果的總數為 0,系統就會釋出與連線物件相關聯的資源。如果發生這種情形,應用程式就不需再與物件互動。

詳情
參數
[in] suppressCloseLog
如果需要隱藏記錄,則傳回「是」,否則為「否」。
傳回
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 連線作業產生的圖層錯誤。

連結

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

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

詳情
參數
[in] peerNodeId
對等節點的節點 ID、kNodeIdNotSpecified 或 0 (如果不明)。
[in] peerAddr
對等點的 IP 位址,如果不明,IPIP::不限。
[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 位址,如果不明,IPIP::不限。
[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 列舉中的一或多個值「或」。
[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 列舉中的一或多個值「或」。
[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 連線作業產生的圖層錯誤。

停用 KeepAlive

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 端點相關的內建層錯誤,即可啟用保持運作作業。

停用接收

void DisableReceive(
  void
)

停止透過此 WeaveConnection 接收資料。

應用程式會使用此方法表示尚未準備好透過 TCP 連線接收任何抵達的資料。如要重新啟用接收功能,應用程式必須呼叫 EnableReceive() 來允許 WeaveConnection 透過叫用 App Engine 叫用回呼來接收任何收到的資料。

另請參閱:
EnableReceive()

啟用 KeepAlive

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 端點相關的內建層錯誤,即可啟用保持運作作業。

啟用接收

void EnableReceive(
  void
)

允許透過此 WeaveConnection 接收要求。

應用程式會使用此方法向 WeaveConnection 物件表示已準備好接收透過 TCP 連線到達的任何資料。

另請參閱:
DisableReceive()

取得同類應用程式資訊

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

取得對等應用程式的 IP 位址資訊。

詳情
參數
[out] addrInfo
IPPacketInfo 物件的參照。
傳回值
WEAVE_NO_ERROR
上傳成功。
WEAVE_ERROR_NOT_IMPLEMENTED
如果針對不相容的端點叫用這個函式 (例如BLE)。

取得同類應用程式說明

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

建構用於說明與連線相關聯的對等節點的字串。

詳情
參數
[in] buf
指向字串應寫入的緩衝區指標。提供的緩衝區不得小於 kGetPeerDescription_MaxLength。如果指定較小的緩衝區,字串會遭到截斷以配合。在任何情況下,輸出結果都會包含 NUL 終止字元。
[in] bufSize
buf 指向的緩衝區大小。

取得 TCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

來電

bool IsIncoming(
  void
) const 

記錄檔 ID

uint16_t LogId(
  void
) const 

發布當天

void Release(
  void
)

減少 WeaveConnection 物件的參考計數。

Release() 方法會減少與 WeaveConnection 物件相關聯的參照計數。如果這會讓參照計數為 0,則系統會關閉連線,並釋出連線物件。如果發生這種情形,應用程式就不需再與物件互動。

重設使用者逾時

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 端點重設相關的內建層錯誤。

傳送訊息

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
)

為 Connect 設定逾時,或傳回錯誤。

詳情
參數
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

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

詳情
參數
[in] timeoutMS
逾時時間 (以毫秒為單位)。
傳回值
WEAVE_NO_ERROR
成功設定連線的閒置逾時時間。
WEAVE_ERROR_INCORRECT_STATE
如果 WeaveConnection 物件接收訊息的方式不正確。

設定來電

void SetIncoming(
  bool val
)

設定使用者逾時

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()