nl::Weave::WeaveConnection

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

Định nghĩa về lớp Weave Connection (Kết nối Weave).

Tóm tắt

Đây là kết nối TCP hoặc BLE với một nút Weave khác.

Loại công khai

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Hàm này là lệnh gọi lại ứng dụng được bật khi đóng kết nối.
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Hàm này là lệnh gọi lại ứng dụng được gọi khi thiết lập kết nối hoàn tất.
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Hàm này là lệnh gọi lại ứng dụng được gọi khi nhận được tin nhắn qua kết nối Weave.
NetworkType{
  kNetworkType_Unassigned = 0,
  kNetworkType_IP = 1,
  kNetworkType_BLE = 2
}
enum
Loại mạng của đối tượng kết nối Weave.
ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err) typedef
void(*
Hàm này là lệnh gọi lại ứng dụng được gọi khi gặp lỗi khi nhận được thông báo Weave.
State{
  kState_ReadyToConnect = 0,
  kState_Resolving = 1,
  kState_Connecting = 2,
  kState_EstablishingSession = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_Closed = 6
}
enum
Trạng thái của đối tượng kết nối Weave.
TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Chức năng này là lệnh gọi lại ứng dụng được gọi khi nhận được gói dữ liệu Đường hầm qua kết nối Weave.

Thuộc tính công khai

AppState
void *
Con trỏ đến đối tượng trạng thái dành riêng cho ứng dụng.
AuthMode
WeaveAuthMode
[READ ONLY] Chế độ xác thực dùng để thiết lập khoá mã hoá mặc định cho kết nối.
DefaultEncryptionType
uint8_t
Kiểu mã hoá mặc định cho thư.
DefaultKeyId
uint16_t
Khoá mã hoá mặc định dùng khi gửi tin nhắn.
MessageLayer
[READ ONLY] Đối tượng WeaveMessageLayer được liên kết.
NetworkType
uint8_t
[READ ONLY] Loại mạng của điểm cuối liên kết.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[READ ONLY] Địa chỉ IP của nút ngang hàng.
PeerNodeId
uint64_t
[READ ONLY] Giá trị nhận dạng nút của ứng dụng ngang hàng.
PeerPort
uint16_t
[READ ONLY] Số cổng của nút ngang hàng.
ReceiveEnabled
bool
[READ ONLY] True nếu tính năng nhận được bật, nếu không thì là false.
SendDestNodeId
bool
"True" nếu tất cả thông báo gửi qua kết nối này phải bao gồm mã nhận dạng nút đích được mã hoá rõ ràng, nếu không thì "false".
SendSourceNodeId
bool
"True" nếu tất cả thông báo gửi qua kết nối này phải bao gồm giá trị nhận dạng nút nguồn được mã hoá rõ ràng, nếu không sẽ là "false".
State
uint8_t
[READ ONLY] Trạng thái của đối tượng WeaveConnection.

Hàm công khai

Abort(void)
void
Thực hiện đóng WeaveConnection dựa trên TCP hoặc BLE, đóng mọi dữ liệu có thể đang di chuyển đến hoặc đi từ ứng dụng ngang hàng.
AddRef(void)
void
Đặt trước một tham chiếu đến đối tượng WeaveConnection.
Close(void)
Thực hiện đóng WeaveConnection dựa trên TCP hoặc BLE, đóng một cách linh hoạt không chặn, phân phối mọi dữ liệu đi còn lại trước khi thông báo lịch sự cho máy chủ từ xa rằng chúng tôi đã đặt lại kết nối.
Close(bool suppressCloseLog)
Thực hiện đóng WeaveConnection dựa trên TCP hoặc BLE, đóng một cách linh hoạt không chặn, phân phối mọi dữ liệu đi còn lại trước khi thông báo lịch sự cho máy chủ từ xa rằng chúng tôi đã đặt lại kết nối.
Connect(uint64_t peerNodeId)
Kết nối với nút Weave bằng cách sử dụng địa chỉ IP vải lấy từ mã nhận dạng nút đã chỉ định.
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
Kết nối với nút Weave bằng mã nhận dạng nút và/hoặc địa chỉ IP.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
Kết nối với nút Weave bằng cách sử dụng mã nhận dạng nút và/hoặc địa chỉ IP trên một giao diện cụ thể.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc tên máy chủ lưu trữ chuỗi.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc địa chỉ ngang hàng dạng chuỗi.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc địa chỉ ngang hàng dạng chuỗi.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc danh sách tên máy chủ và cổng.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc danh sách tên máy chủ và cổng.
DisableKeepAlive(void)
DisableReceive(void)
void
Tắt chế độ nhận qua WeaveConnection này.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
Bật nhận qua WeaveConnection này.
GetPeerAddressInfo(IPPacketInfo & addrInfo)
Lấy thông tin về địa chỉ IP của ứng dụng ngang hàng.
GetPeerDescription(char *buf, size_t bufSize) const
void
Tạo một chuỗi mô tả nút ngang hàng liên kết với kết nối.
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
Giảm số lượng tham chiếu trên đối tượng WeaveConnection.
ResetUserTimeout(void)
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Gửi tin nhắn Weave qua kết nối đã thiết lập.
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Hàm gửi một gói tin Tunneled (đường hầm) qua kết nối Weave.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Đặt thời gian chờ để Connect thành công hoặc trả về lỗi.
SetIdleTimeout(uint32_t timeoutMS)
Đặt thời gian chờ ở trạng thái rảnh trên kết nối lớp mạng cơ bản.
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
Shutdown(void)
Thực hiện lệnh gửi TCP linh hoạt, đảm bảo tất cả dữ liệu đi đều được ngăn xếp TCP của ứng dụng ngang hàng gửi và nhận tất cả dữ liệu đi.

Loại công khai

@58

 @58
Thuộc tính
kGetPeerDescription_MaxLength

Độ dài tối đa của chuỗi (bao gồm cả ký tự NUL) do hàm GetPeerDescription() trả về.

ConnectionClosedFunct

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

Hàm này là lệnh gọi lại ứng dụng được bật khi đóng kết nối.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] conErr
Đã xảy ra WEAVE_ERROR khi kết nối bị đóng.

ConnectionCompleteFunct

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

Hàm này là lệnh gọi lại ứng dụng được gọi khi thiết lập kết nối hoàn tất.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] conErr
Đã xảy ra WEAVE_ERROR trong quá trình thiết lập kết nối.

MessageReceiveFunct

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

Hàm này là lệnh gọi lại ứng dụng được gọi khi nhận được tin nhắn qua kết nối Weave.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] msgInfo
Con trỏ đến cấu trúc WeaveMessageInfo chứa thông tin về thông báo.
[in] msgBuf
Con trỏ đến đối tượng PacketBuffer đang giữ thông báo.

NetworkType

 NetworkType

Loại mạng của đối tượng kết nối Weave.

Thuộc tính
kNetworkType_BLE

Loại mạng BLE.

kNetworkType_IP

loại mạng TCP/IP.

kNetworkType_Unassigned

Loại mạng chưa được chỉ định.

ReceiveErrorFunct

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

Hàm này là lệnh gọi lại ứng dụng được gọi khi gặp lỗi khi nhận được thông báo Weave.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] err
Đã xảy ra WEAVE_ERROR khi nhận dữ liệu qua kết nối.

Tiểu bang

 State

Trạng thái của đối tượng kết nối Weave.

Thuộc tính
kState_Closed

Trạng thái khi kết nối bị đóng.

kState_Connected

Trạng thái khi kết nối đã được thiết lập.

kState_Connecting

Trạng thái khi đang cố gắng kết nối.

kState_EstablishingSession

Trạng thái khi phiên bảo mật được thiết lập.

kState_ReadyToConnect

Trạng thái sau khi khởi động kết nối Weave.

kState_Resolving

Trạng thái khi quá trình phân giải tên DNS đang được thực hiện.

kState_SendShutdown

Trạng thái khi kết nối bị tắt.

TunneledMsgReceiveFunct

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

Chức năng này là lệnh gọi lại ứng dụng được gọi khi nhận được gói dữ liệu Đường hầm qua kết nối Weave.

Thông tin chi tiết
Các tham số
[in] con
Con trỏ đến đối tượng WeaveConnection.
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] msgBuf
Con trỏ đến đối tượng PacketBuffer chứa gói tin được tạo đường hầm đã nhận.

Thuộc tính công khai

AppState

void * AppState

Con trỏ đến đối tượng trạng thái dành riêng cho ứng dụng.

AuthMode

WeaveAuthMode AuthMode

[READ ONLY] Chế độ xác thực dùng để thiết lập khoá mã hoá mặc định cho kết nối.

DefaultEncryptionType

uint8_t DefaultEncryptionType

Kiểu mã hoá mặc định cho thư.

DefaultKeyId

uint16_t DefaultKeyId

Khoá mã hoá mặc định dùng khi gửi tin nhắn.

MessageLayer

WeaveMessageLayer * MessageLayer

[READ ONLY] Đối tượng WeaveMessageLayer được liên kết.

NetworkType

uint8_t NetworkType

[READ ONLY] Loại mạng của điểm cuối liên kết.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[READ ONLY] Địa chỉ IP của nút ngang hàng.

PeerNodeId

uint64_t PeerNodeId

[READ ONLY] Giá trị nhận dạng nút của ứng dụng ngang hàng.

PeerPort

uint16_t PeerPort

[READ ONLY] Số cổng của nút ngang hàng.

ReceiveEnabled

bool ReceiveEnabled

[READ ONLY] True nếu tính năng nhận được bật, nếu không thì là false.

SendDestNodeId

bool SendDestNodeId

"True" nếu tất cả thông báo gửi qua kết nối này phải bao gồm mã nhận dạng nút đích được mã hoá rõ ràng, nếu không thì "false".

SendSourceNodeId

bool SendSourceNodeId

"True" nếu tất cả thông báo gửi qua kết nối này phải bao gồm giá trị nhận dạng nút nguồn được mã hoá rõ ràng, nếu không sẽ là "false".

Tiểu bang

uint8_t State

[READ ONLY] Trạng thái của đối tượng WeaveConnection.

Hàm công khai

Hủy

void Abort(
  void
)

Thực hiện đóng WeaveConnection dựa trên TCP hoặc BLE, đóng mọi dữ liệu có thể đang di chuyển đến hoặc đi từ ứng dụng ngang hàng.

Lệnh gọi Cancel() (Huỷ) sẽ ngay lập tức chấm dứt kết nối cơ bản. Sau thời điểm này, bạn không thể dùng đối tượng WeaveConnection để giao tiếp nữa.

Việc gọi Cancel() sẽ làm giảm số lượng tệp tham chiếu liên kết với đối tượng WeaveConnection, bất kể kết nối có mở/hoạt động tại thời điểm phương thức này được gọi hay không. Nếu điều này dẫn đến số lượng tham chiếu bằng 0, các tài nguyên liên kết với đối tượng kết nối sẽ được giải phóng. Khi điều này xảy ra, ứng dụng không được có thêm tương tác nào với đối tượng.

Xem thêm:
shdown(), Cancellation(), AddRef()Release().

AddRef

void AddRef(
  void
)

Đặt trước một tham chiếu đến đối tượng WeaveConnection.

Phương thức AddRef() làm tăng số lượng tham chiếu được liên kết với đối tượng WeaveConnection. Đối với mỗi lệnh gọi đến AddRef(), ứng dụng chịu trách nhiệm thực hiện lệnh gọi tương ứng đến Release(), Close() hoặc Unsubscribe().

Đóng

WEAVE_ERROR Close(
  void
)

Thực hiện đóng WeaveConnection dựa trên TCP hoặc BLE, đóng một cách linh hoạt không chặn, phân phối mọi dữ liệu đi còn lại trước khi thông báo lịch sự cho máy chủ từ xa rằng chúng tôi đã đặt lại kết nối.

Phương thức này không đảm bảo chắc chắn rằng ứng dụng ngang hàng từ xa đã nhận được mọi thư đi chưa được xác nhận ở cấp giao thức ứng dụng. Đối với cả TCP và BLE, ngăn xếp giao thức cơ bản sẽ nỗ lực tối đa để phân phối mọi dữ liệu đi đang chờ xử lý trước khi đặt lại kết nối. Đối với TCP, bạn nên sử dụng Shutdown() trước Close() nếu cần xác nhận nhận thông báo ở lớp truyền tải trước khi đóng kết nối. Các kết nối BLE không có dữ liệu tương đương Shutdown().

Đối với các kết nối dựa trên BLE, Close() sẽ đóng WeaveConnection và trả về ngay lập tức, nhưng có thể khiến đối tượng BLEEndPoint cơ bản bị treo lại cho đến khi tất cả dữ liệu gửi đi được gửi đi. Đây là tác dụng phụ của việc triển khai giao thức truyền tải BLE qua Weave có trong Weave BleLayer.

Sau khi gọi Close(), bạn không thể dùng đối tượng WeaveConnection để giao tiếp được nữa.

Việc gọi Close() sẽ giảm số lượng tham chiếu liên kết với đối tượng WeaveConnection, cho dù kết nối có mở/hoạt động tại thời điểm phương thức này được gọi hay không. Nếu điều này dẫn đến số lượng tham chiếu bằng 0, các tài nguyên liên kết với đối tượng kết nối sẽ được giải phóng. Khi điều này xảy ra, ứng dụng không được có thêm tương tác nào với đối tượng.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR vô điều kiện.
Xem thêm:
Shutdown(), Cancellation(), AddRef()Release().

Đóng

WEAVE_ERROR Close(
  bool suppressCloseLog
)

Thực hiện đóng WeaveConnection dựa trên TCP hoặc BLE, đóng một cách linh hoạt không chặn, phân phối mọi dữ liệu đi còn lại trước khi thông báo lịch sự cho máy chủ từ xa rằng chúng tôi đã đặt lại kết nối.

Phương thức này không đảm bảo chắc chắn rằng ứng dụng ngang hàng từ xa đã nhận được mọi thư đi chưa được xác nhận ở cấp giao thức ứng dụng. Đối với cả TCP và BLE, ngăn xếp giao thức cơ bản sẽ nỗ lực tối đa để phân phối mọi dữ liệu đi đang chờ xử lý trước khi đặt lại kết nối. Đối với TCP, bạn nên sử dụng Shutdown() trước Close() nếu cần xác nhận nhận thông báo ở lớp truyền tải trước khi đóng kết nối. Các kết nối BLE không có dữ liệu tương đương Shutdown().

Đối với các kết nối dựa trên BLE, Close() sẽ đóng WeaveConnection và trả về ngay lập tức, nhưng có thể khiến đối tượng BLEEndPoint cơ bản bị treo lại cho đến khi tất cả dữ liệu gửi đi được gửi đi. Đây là tác dụng phụ của việc triển khai giao thức truyền tải BLE qua Weave có trong Weave BleLayer.

Sau khi gọi Close(), bạn không thể dùng đối tượng WeaveConnection để giao tiếp được nữa.

Việc gọi Close() sẽ giảm số lượng tham chiếu liên kết với đối tượng WeaveConnection, cho dù kết nối có mở/hoạt động tại thời điểm phương thức này được gọi hay không. Nếu điều này dẫn đến số lượng tham chiếu bằng 0, các tài nguyên liên kết với đối tượng kết nối sẽ được giải phóng. Khi điều này xảy ra, ứng dụng không được có thêm tương tác nào với đối tượng.

Thông tin chi tiết
Các tham số
[in] suppressCloseLog
true nếu cần chặn nhật ký, nếu không cần chặn nhật ký.
Trả về
WEAVE_NO_ERROR vô điều kiện.
Xem thêm:
Shutdown(), Cancellation(), AddRef()Release().

Kết nối

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

Kết nối với nút Weave bằng cách sử dụng địa chỉ IP vải lấy từ mã nhận dạng nút đã chỉ định.

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ id nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

Kết nối

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

Kết nối với nút Weave bằng mã nhận dạng nút và/hoặc địa chỉ IP.

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotSpecified hoặc 0 nếu không xác định.
[in] peerAddr
Địa chỉ IP của ứng dụng ngang hàng, IPAddress::Any (Địa chỉ IP: Bất kỳ) nếu không xác định.
[in] peerPort
Cổng không bắt buộc của ứng dụng ngang hàng, mặc định là WEAVE_PORT.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ id nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

Kết nối

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

Kết nối với nút Weave bằng cách sử dụng mã nhận dạng nút và/hoặc địa chỉ IP trên một giao diện cụ thể.

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotSpecified hoặc 0 nếu không xác định.
[in] authMode
Chế độ xác thực mong muốn cho ứng dụng ngang hàng. Chỉ hỗ trợ chế độ CASE, PASE và Chưa được xác thực.
[in] peerAddr
Địa chỉ IP của ứng dụng ngang hàng, IPAddress::Any (Địa chỉ IP: Bất kỳ) nếu không xác định.
[in] peerPort
Cổng không bắt buộc của ứng dụng ngang hàng, mặc định là WEAVE_PORT.
[in] intf
Giao diện không bắt buộc dùng để kết nối với nút ngang hàng, mặc định là INET_NULL_INTERFACEID.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ mã nhận dạng nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

Kết nối

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

Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc tên máy chủ lưu trữ chuỗi.

Nếu được cung cấp, thìỨng dụng ngang hàng có thể là bất kỳ giá trị nào sau đây:


:

:

[]:

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotSpecified hoặc 0 nếu không xác định.
[in] authMode
Chế độ xác thực mong muốn cho ứng dụng ngang hàng. Chỉ hỗ trợ chế độ CASE, PASE và Chưa được xác thực.
[in] peerAddr
Địa chỉ hoặc tên máy chủ của ứng dụng ngang hàng dưới dạng chuỗi C kết thúc với giá trị NULL.
[in] defaultPort
Cổng mặc định không bắt buộc để sử dụng cho kết nối nếu không được cung cấp trong chuỗi ngang hàng.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ id nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

Kết nối

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

Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc địa chỉ ngang hàng dạng chuỗi.

Nếu được cung cấp, thìỨng dụng ngang hàng có thể là bất kỳ giá trị nào sau đây:


:

:

[]:

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotSpecified hoặc 0 nếu không xác định.
[in] authMode
Chế độ xác thực mong muốn cho ứng dụng ngang hàng. Chỉ hỗ trợ chế độ CASE, PASE và Chưa được xác thực.
[in] peerAddr
Địa chỉ hoặc tên máy chủ của ứng dụng ngang hàng dưới dạng chuỗi C không phải là kết thúc NULL.
[in] peerAddrLen
Độ dài của chuỗi enum.
[in] defaultPort
Cổng mặc định không bắt buộc để sử dụng cho kết nối nếu không được cung cấp trong chuỗi ngang hàng.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ id nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

Kết nối

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

Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc địa chỉ ngang hàng dạng chuỗi.

Nếu được cung cấp, thìỨng dụng ngang hàng có thể là bất kỳ giá trị nào sau đây:


:

:

[]:

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotSpecified hoặc 0 nếu không xác định.
[in] authMode
Chế độ xác thực mong muốn cho ứng dụng ngang hàng. Chỉ hỗ trợ chế độ CASE, PASE và Chưa được xác thực.
[in] peerAddr
Địa chỉ hoặc tên máy chủ của ứng dụng ngang hàng dưới dạng chuỗi C không phải là kết thúc NULL.
[in] peerAddrLen
Độ dài của chuỗi enum.
[in] dnsOptions
Một giá trị số nguyên kiểm soát cách thực hiện quá trình phân giải tên máy chủ lưu trữ. Giá trị phải là OR của một hoặc nhiều giá trị trong bảng liệt kê #::nl::Inet::DNSOptions.
[in] defaultPort
Cổng mặc định không bắt buộc để sử dụng cho kết nối nếu không được cung cấp trong chuỗi ngang hàng.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ id nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

Kết nối

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

Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc danh sách tên máy chủ và cổng.

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng.
[in] authMode
Chế độ xác thực dùng cho kết nối.
[in] hostPortList
Danh sách tên máy chủ và cổng.
[in] intf
Giao diện không bắt buộc dùng để kết nối với nút ngang hàng, mặc định là INET_NULL_INTERFACEID.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ id nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

Kết nối

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

Kết nối với nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc danh sách tên máy chủ và cổng.

Thông tin chi tiết
Các tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng.
[in] authMode
Chế độ xác thực dùng cho kết nối.
[in] hostPortList
Danh sách tên máy chủ và cổng.
[in] dnsOptions
Một giá trị số nguyên kiểm soát cách thực hiện quá trình phân giải tên máy chủ lưu trữ. Giá trị phải là OR của một hoặc nhiều giá trị trong bảng liệt kê #::nl::Inet::DNSOptions.
[in] intf
Giao diện không bắt buộc dùng để kết nối với nút ngang hàng, mặc định là INET_NULL_INTERFACEID.
Giá trị trả về
WEAVE_NO_ERROR
khi bắt đầu thành công kết nối với ứng dụng ngang hàng.
WEAVE_ERROR_INCORRECT_STATE
nếu trạng thái WeaveConnection không chính xác.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
nếu chế độ xác thực đã yêu cầu không được hỗ trợ.
WEAVE_ERROR_INVALID_ADDRESS
nếu không thể suy ra địa chỉ đích từ id nút.
other
Lỗi lớp Inet do hoạt động kết nối TCPEndPoint tạo ra.

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive.

Tắt các đầu dò duy trì hoạt động của TCP trên kết nối TCP cơ bản.

Lưu ý: Bạn chỉ có thể gọi phương thức này trên kết nối Weave có kết nối TCP hỗ trợ. Phương thức này chỉ có thể được gọi khi kết nối ở trạng thái cho phép gửi.

Phương thức này không có tác dụng gì nếu tính năng giữ kết nối chưa được bật trên kết nối.

Thông tin chi tiết
Giá trị trả về
WEAVE_NO_ERROR
về việc tắt thành công các đầu dò duy trì hoạt động của TCP trên kết nối.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi cho một điểm cuối không tương thích (ví dụ: BLE) trong lớp mạng.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái chính xác để gửi thông báo.
other
Các lỗi lớp Inet liên quan đến điểm cuối TCP cho phép duy trì hoạt động.

DisableReceive

void DisableReceive(
  void
)

Tắt chế độ nhận qua WeaveConnection này.

Ứng dụng sử dụng phương thức này để cho biết rằng ứng dụng chưa sẵn sàng nhận bất kỳ dữ liệu nào đến qua kết nối TCP. Để bật lại tính năng nhận, ứng dụng cần gọi EnableReceive() để cho phép WeaveConnection chuyển giao mọi dữ liệu đã nhận bằng cách gọi các lệnh gọi lại phù hợp.

Xem thêm:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive.

Bật đầu dò duy trì TCP trên kết nối TCP cơ bản.

Lưu ý: – Bạn chỉ có thể gọi phương pháp này trên kết nối Weave có kết nối TCP hỗ trợ. – Chỉ có thể gọi phương thức này khi kết nối ở trạng thái cho phép gửi.

Thông tin chi tiết
Các tham số
[in] interval
Khoảng thời gian (tính bằng giây) giữa các đầu dò được bảo vệ. Giá trị này cũng kiểm soát thời gian giữa thời điểm gửi gói dữ liệu gần đây nhất đến khi truyền đầu dò duy trì hoạt động đầu tiên.
[in] timeoutCount
Số lượng đầu dò chưa được xác nhận tối đa trước khi kết nối được coi là không thành công.

– Phương pháp này có thể được gọi nhiều lần để điều chỉnh khoảng thời gian duy trì hoạt động hoặc số thời gian chờ.

Thông tin chi tiết
Giá trị trả về
WEAVE_NO_ERROR
về việc bật thành công các đầu dò duy trì hoạt động của TCP trên kết nối.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi cho một điểm cuối không tương thích (ví dụ: BLE) trong lớp mạng.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái chính xác để gửi thông báo.
other
Các lỗi lớp Inet liên quan đến điểm cuối TCP cho phép duy trì hoạt động.

EnableReceive

void EnableReceive(
  void
)

Bật nhận qua WeaveConnection này.

Phương thức này được ứng dụng sử dụng để cho đối tượng WeaveConnection biết rằng ứng dụng đã sẵn sàng nhận mọi dữ liệu đến qua kết nối TCP.

Xem thêm:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

Lấy thông tin về địa chỉ IP của ứng dụng ngang hàng.

Thông tin chi tiết
Các tham số
[out] addrInfo
Tham chiếu đến đối tượng IPPacketInfo.
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công.
WEAVE_ERROR_NOT_IMPLEMENTED
Nếu hàm này được gọi cho một điểm cuối không tương thích (ví dụ: BLE) trong lớp mạng.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

Tạo một chuỗi mô tả nút ngang hàng liên kết với kết nối.

Thông tin chi tiết
Các tham số
[in] buf
Con trỏ đến một vùng đệm mà chuỗi sẽ được ghi vào đó. Bộ đệm được cung cấp ít nhất phải lớn bằng kGetPeerDescription_MaxLength. Nếu vùng đệm nhỏ hơn được cung cấp, chuỗi sẽ bị cắt bớt cho vừa. Kết quả sẽ bao gồm một ký tự kết thúc NUL trong mọi trường hợp.
[in] bufSize
Kích thước của vùng đệm được trỏ đến bởi buf.

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

Bản phát hành

void Release(
  void
)

Giảm số lượng tham chiếu trên đối tượng WeaveConnection.

Phương thức Release() giảm số lượng tham chiếu liên kết với đối tượng WeaveConnection. Nếu điều này dẫn đến số lượng tham chiếu đạt đến 0, kết nối sẽ đóng và đối tượng kết nối sẽ được giải phóng. Khi điều này xảy ra, ứng dụng không được có thêm tương tác nào với đối tượng.

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout.

Đặt lại tuỳ chọn cổng hết thời gian chờ của người dùng TCP thành giá trị mặc định của hệ thống.

Lưu ý: – Bạn chỉ có thể gọi phương pháp này trên kết nối Weave có kết nối TCP hỗ trợ. – Chỉ có thể gọi phương thức này khi kết nối ở trạng thái cho phép gửi.

– Phương thức này sẽ không có tác dụng gì nếu thời gian chờ của người dùng chưa được đặt trên kết nối.

Thông tin chi tiết
Giá trị trả về
WEAVE_NO_ERROR
về việc đặt lại thành công thời gian chờ của người dùng TCP trên kết nối.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi cho một điểm cuối không tương thích (ví dụ: BLE) trong lớp mạng.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái chính xác để gửi thông báo.
other
Lỗi lớp Inet liên quan đến việc đặt lại điểm cuối TCP về thời gian chờ của người dùng TCP.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi tin nhắn Weave qua kết nối đã thiết lập.

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] msgBuf
Con trỏ đến đối tượng PacketBuffer đang giữ gói dữ liệu để gửi.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái chính xác để gửi thông báo.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
nếu mã nhận dạng nút đích chưa được chỉ định.
WEAVE_ERROR_SENDING_BLOCKED
nếu tin nhắn quá dài nên không gửi được.
other
Lỗi lớp tích hợp liên quan đến thao tác gửi điểm cuối cụ thể.

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Hàm gửi một gói tin Tunneled (đường hầm) qua kết nối Weave.

Gửi thông báo Weave được tạo đường hầm qua kết nối đã thiết lập.

Thông tin chi tiết
Các tham số
[in] msgInfo
Con trỏ đến đối tượng WeaveMessageInfo.
[in] msgBuf
Con trỏ đến đối tượng PacketBuffer đang giữ gói dữ liệu để gửi.
Giá trị trả về
WEAVE_NO_ERROR
khi gửi thành công thông báo xuống lớp mạng.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái chính xác để gửi thông báo.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
nếu mã nhận dạng nút đích chưa được chỉ định.
WEAVE_ERROR_SENDING_BLOCKED
nếu tin nhắn quá dài nên không gửi được.
other
Lỗi lớp tích hợp liên quan đến thao tác gửi điểm cuối cụ thể.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Đặt thời gian chờ để Connect thành công hoặc trả về lỗi.

Thông tin chi tiết
Các tham số
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

Đặt thời gian chờ ở trạng thái rảnh trên kết nối lớp mạng cơ bản.

Thông tin chi tiết
Các tham số
[in] timeoutMS
thời gian chờ tính bằng mili giây.
Giá trị trả về
WEAVE_NO_ERROR
về việc cài đặt thành công thời gian chờ không hoạt động cho kết nối.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái phù hợp để nhận thông báo.

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout.

Đặt tuỳ chọn cổng hết thời gian chờ của người dùng TCP.

Khi giá trị lớn hơn 0, thẻ này sẽ chỉ định khoảng thời gian tối đa tính bằng mili giây mà dữ liệu được truyền có thể vẫn chưa được xác nhận trước khi TCP buộc đóng kết nối tương ứng. Nếu giá trị của quyền chọn được chỉ định là 0, thì TCP sẽ sử dụng chế độ mặc định của hệ thống. Xem RFC 5482 để biết thêm chi tiết.

Thông tin chi tiết
Các tham số
[in] userTimeoutMillis
Giá trị thời gian chờ của người dùng Tcp tính bằng mili giây.

Lưu ý: – Bạn chỉ có thể gọi phương pháp này trên kết nối Weave có kết nối TCP hỗ trợ. – Chỉ có thể gọi phương thức này khi kết nối ở trạng thái cho phép gửi.

– Phương thức này có thể được gọi nhiều lần để điều chỉnh thời gian chờ TCP của người dùng.

Thông tin chi tiết
Giá trị trả về
WEAVE_NO_ERROR
về việc cài đặt thành công thời gian chờ của người dùng TCP trên kết nối.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi cho một điểm cuối không tương thích (ví dụ: BLE) trong lớp mạng.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái chính xác để gửi thông báo.
other
Lỗi lớp inet liên quan đến chế độ cài đặt điểm cuối TCP trong thời gian chờ của người dùng TCP.

Tắt

WEAVE_ERROR Shutdown(
  void
)

Thực hiện lệnh gửi TCP linh hoạt, đảm bảo tất cả dữ liệu đi đều được ngăn xếp TCP của ứng dụng ngang hàng gửi và nhận tất cả dữ liệu đi.

Với hầu hết (nhưng không phải tất cả) quá trình triển khai TCP, việc nhận được lệnh tắt gửi sẽ khiến máy chủ từ xa tắt cả kết nối, dẫn đến việc kết nối bị đóng. Lệnh gọi tiếp theo tới Close() sẽ chấm dứt WeaveConnection.

Thông tin chi tiết
Giá trị trả về
WEAVE_NO_ERROR
khi tắt kết nối tcp thành công.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi cho một điểm cuối không tương thích (ví dụ: BLE) trong lớp mạng.
WEAVE_ERROR_INCORRECT_STATE
nếu đối tượng WeaveConnection không ở trạng thái chính xác trước khi bắt đầu tắt.
other
Lỗi lớp inet liên quan đến các thao tác tắt điểm cuối cụ thể.
Xem thêm:
Close()Skip().