nl::Weave::WeaveConnection

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

Định nghĩa về lớp Weave Connection.

Tóm tắt

Lớp này đại diện cho 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 gọi khi kết nối bị đóng.
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 quá trình 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 thông báo 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 của ứng dụng được gọi khi gặp lỗi khi nhận được thông báo về 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(*
Hàm này là lệnh gọi lại của ứng dụng được gọi khi nhận được Gói dữ liệu được tạo đường hầm qua kết nối Weave.

Các thuộc tính công khai

AppState
void *
Con trỏ trỏ đến đối tượng trạng thái dành riêng cho ứng dụng.
AuthMode
WeaveAuthMode
[CHỈ ĐỌC] 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
Loại mã hoá mặc định cho thư.
DefaultKeyId
uint16_t
Khoá mã hoá mặc định để sử dụng khi gửi tin nhắn.
MessageLayer
[CHỈ ĐỌC] Đối tượng WeaveMessageLayer được liên kết.
NetworkType
uint8_t
[CHỈ ĐỌC] Loại mạng của điểm cuối được liên kết.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[CHỈ ĐỌC] Địa chỉ IP của nút ngang hàng.
PeerNodeId
uint64_t
[CHỈ ĐỌC] Giá trị nhận dạng nút của ứng dụng ngang hàng.
PeerPort
uint16_t
[CHỈ ĐỌC] Số cổng của nút ngang hàng.
ReceiveEnabled
bool
[CHỈ ĐỌC] Đúng 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 được gửi qua kết nối này đều phải có giá trị nhận dạng nút đích được mã hoá rõ ràng, nếu không thì là false.
SendSourceNodeId
bool
"True" nếu tất cả thông báo được gửi qua kết nối này đều phải có giá trị nhận dạng nút nguồn được mã hoá rõ ràng, nếu không thì phải có giá trị false.
State
uint8_t
[CHỈ ĐỌC] 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 một cách không thoả đáng, loại bỏ mọi dữ liệu có thể đang chuyển đến hoặc chuyển từ ứng dụng ngang hàng.
AddRef(void)
void
Đặt trước tệp tham chiếu đến đối tượng WeaveConnection.
Close(void)
Thực hiện thao tác đóng mở rộng không chặn WeaveConnection dựa trên TCP hoặc BLE, 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 ta đã đặt lại kết nối.
Close(bool suppressCloseLog)
Thực hiện thao tác đóng mở rộng không chặn WeaveConnection dựa trên TCP hoặc BLE, 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 ta đã đặt lại kết nối.
Connect(uint64_t peerNodeId)
Kết nối với một nút Weave bằng địa chỉ IP kết hợp từ giá trị nhận dạng nút đã chỉ định.
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
Kết nối với một nút Weave bằng cách sử dụng giá trị 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 một nút Weave bằng cách sử dụng giá trị 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 một nút Weave bằ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 một nút Weave bằng giá trị nhận dạng nút và/hoặc địa chỉ chuỗi ngang hàng.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
Kết nối với một nút Weave bằng giá trị nhận dạng nút và/hoặc địa chỉ chuỗi ngang hàng.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
Kết nối với một nút Weave bằ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 một nút Weave bằ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 tính năng nhận qua WeaveConnection này.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
Cho phép nhận qua WeaveConnection này.
GetPeerAddressInfo(IPPacketInfo & addrInfo)
Lấy thông tin đị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 thư Weave qua một kết nối đã thiết lập.
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Hàm gửi một gói có đường hầm qua kết nối Weave.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Đặt thời gian chờ để Kết nối thành công hoặc trả về lỗi.
SetIdleTimeout(uint32_t timeoutMS)
Đặt thời gian chờ ở trạng thái không hoạt động 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 quá trình tắt gửi TCP một cách linh hoạt, đảm bảo ngăn xếp TCP của mạ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 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 gọi khi kết nối bị đóng.

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] conErr
Đã xảy ra lỗi 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 quá trình thiết lập kết nối hoàn tất.

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] conErr
Lỗi WEAVE_ERROR gặp phải 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 thông báo qua kết nối Weave.

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] msgInfo
Con trỏ trỏ đến cấu trúc WeaveMessageInfo chứa thông tin về thông báo.
[in] msgBuf
Con trỏ trỏ vào đối tượng PacketBuffer đang chứa 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 chỉ định.

ReceiveErrorFunct

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

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

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] err
Đã xảy ra lỗi 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 thử kết nối.

kState_EstablishingSession

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

kState_ReadyToConnect

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

kState_Resolving

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

kState_SendShutdown

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

TunneledMsgReceiveFunct

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

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

Chi tiết
Tham số
[in] con
Con trỏ trỏ đến đối tượng WeaveConnection.
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] msgBuf
Con trỏ trỏ tới đối tượng PacketBuffer chứa gói tin được tạo theo đường hầm nhận được.

Các thuộc tính công khai

AppState

void * AppState

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

AuthMode

WeaveAuthMode AuthMode

[CHỈ ĐỌC] 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

Loại mã hoá mặc định cho thư.

DefaultKeyId

uint16_t DefaultKeyId

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

MessageLayer

WeaveMessageLayer * MessageLayer

[CHỈ ĐỌC] Đối tượng WeaveMessageLayer được liên kết.

NetworkType

uint8_t NetworkType

[CHỈ ĐỌC] Loại mạng của điểm cuối được liên kết.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[CHỈ ĐỌC] Địa chỉ IP của nút ngang hàng.

PeerNodeId

uint64_t PeerNodeId

[CHỈ ĐỌC] Giá trị nhận dạng nút của ứng dụng ngang hàng.

PeerPort

uint16_t PeerPort

[CHỈ ĐỌC] Số cổng của nút ngang hàng.

ReceiveEnabled

bool ReceiveEnabled

[CHỈ ĐỌC] Đúng 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 được gửi qua kết nối này đều phải có giá trị nhận dạng nút đích được mã hoá rõ ràng, nếu không thì là false.

SendSourceNodeId

bool SendSourceNodeId

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

Tiểu bang

uint8_t State

[CHỈ ĐỌC] 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 một cách không thoả đáng, loại bỏ mọi dữ liệu có thể đang chuyển đến hoặc chuyển từ ứng dụng ngang hàng.

Lệnh gọi abort() 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ể sử dụng đối tượng WeaveConnection để giao tiếp thêm nữa.

Việc gọi abort() sẽ làm giảm số lượng tham chiếu được liên kết với đối tượng WeaveConnection, cho dù kết nối có đang mở/hoạt động tại thời điểm phương thức được gọi hay không. Nếu việc này khiến số lượng tham chiếu đạt đến 0, thì 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:
Shutdown(), abort(), AddRef()Release().

AddRef

void AddRef(
  void
)

Đặt trước tệp 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 abort().

Đóng

WEAVE_ERROR Close(
  void
)

Thực hiện thao tác đóng mở rộng không chặn WeaveConnection dựa trên TCP hoặc BLE, 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 ta đã đặt lại kết nối.

Phương thức này không đảm bảo chắc chắn rằng trình ngang hàng từ xa đã nhận được mọi thư gửi đ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ẽ cố gắng hết sức để phân phối mọi dữ liệu gửi đi đang chờ xử lý trước khi đặt lại kết nối. Đối với TCP, Shutdown() phải được sử dụng trước Close() nếu cần xác nhận biên nhận thông báo lớp truyền tải trước khi đóng kết nối. Kết nối BLE không có chế độ tương đương Shutdown().

Đối với các kết nối dựa trên BLE, Close() đóng WeaveConnection và trả về ngay lập tức nhưng có thể khiến đối tượng BLEEndPoint cơ bản ở lại cho đến khi tất cả dữ liệu đ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 Weave qua BLE hiện có trong Weave BleLayer.

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

Việc gọi Close() sẽ làm giảm số lượng tham chiếu được liên kết với đối tượng WeaveConnection, cho dù kết nối có đang mở/hoạt động tại thời điểm phương thức được gọi hay không. Nếu việc này khiến số lượng tham chiếu đạt đến 0, thì 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.

Chi tiết
Trả về
WEAVE_NO_ERROR một cách vô điều kiện.
Xem thêm:
Shutdown(), abort(), AddRef()Release().

Đóng

WEAVE_ERROR Close(
  bool suppressCloseLog
)

Thực hiện thao tác đóng mở rộng không chặn WeaveConnection dựa trên TCP hoặc BLE, 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 ta đã đặt lại kết nối.

Phương thức này không đảm bảo chắc chắn rằng trình ngang hàng từ xa đã nhận được mọi thư gửi đ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ẽ cố gắng hết sức để phân phối mọi dữ liệu gửi đi đang chờ xử lý trước khi đặt lại kết nối. Đối với TCP, Shutdown() phải được sử dụng trước Close() nếu cần xác nhận biên nhận thông báo lớp truyền tải trước khi đóng kết nối. Kết nối BLE không có chế độ tương đương Shutdown().

Đối với các kết nối dựa trên BLE, Close() đóng WeaveConnection và trả về ngay lập tức nhưng có thể khiến đối tượng BLEEndPoint cơ bản ở lại cho đến khi tất cả dữ liệu đ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 Weave qua BLE hiện có trong Weave BleLayer.

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

Việc gọi Close() sẽ làm giảm số lượng tham chiếu được liên kết với đối tượng WeaveConnection, cho dù kết nối có đang mở/hoạt động tại thời điểm phương thức được gọi hay không. Nếu việc này khiến số lượng tham chiếu đạt đến 0, thì 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.

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

Kết nối

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

Kết nối với một nút Weave bằng địa chỉ IP kết hợp từ giá trị nhận dạng nút đã chỉ định.

Chi tiết
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 luận đị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 một nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc địa chỉ IP.

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotOnly 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 nếu không biết.
[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 luận đị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 một nút Weave bằng cách sử dụng giá trị nhận dạng nút và/hoặc địa chỉ IP trên một giao diện cụ thể.

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotOnly 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 xác thực.
[in] peerAddr
Địa chỉ IP của ứng dụng ngang hàng, IPAddress::Any nếu không biết.
[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 luận địa chỉ đích từ giá trị 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 một nút Weave bằ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, bạn có thể dùng một trong những chế độ sau:


:

:

[]:

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotOnly 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 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 bằng 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 luận đị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 một nút Weave bằng giá trị nhận dạng nút và/hoặc địa chỉ chuỗi ngang hàng.

Nếu được cung cấp, bạn có thể dùng một trong những chế độ sau:


:

:

[]:

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotOnly 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 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 kết thúc là NULL.
[in] peerAddrLen
Độ dài của chuỗi ngang hàng.
[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 luận đị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 một nút Weave bằng giá trị nhận dạng nút và/hoặc địa chỉ chuỗi ngang hàng.

Nếu được cung cấp, bạn có thể dùng một trong những chế độ sau:


:

:

[]:

Chi tiết
Tham số
[in] peerNodeId
Giá trị nhận dạng nút của ứng dụng ngang hàng, kNodeIdNotOnly 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 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 kết thúc là NULL.
[in] peerAddrLen
Độ dài của chuỗi ngang hà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 giá trị #::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 luận đị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 một nút Weave bằng giá trị nhận dạng nút và/hoặc danh sách tên máy chủ và cổng.

Chi tiết
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 được sử 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 luận đị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 một nút Weave bằng giá trị nhận dạng nút và/hoặc danh sách tên máy chủ và cổng.

Chi tiết
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 được sử 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 giá trị #::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 luận đị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 đầu dò duy trì hoạt động TCP trên kết nối TCP cơ bản.

Lưu ý: Phương thức này chỉ có thể được gọi 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 bạn chưa bật tính năng giữ lại trên kết nối.

Chi tiết
Giá trị trả về
WEAVE_NO_ERROR
về việc tắt thành công đầu dò giữ kết nối TCP trên kết nối.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi vì 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 phù hợp để gửi thông báo.
other
Lỗi lớp Inet liên quan đến điểm cuối TCP cho phép hoạt động duy trì hoạt động.

DisableReceive

void DisableReceive(
  void
)

Tắt tính năng nhận qua WeaveConnection này.

Phương thức này được ứng dụng dùng để cho biết rằng ứng dụng chưa sẵn sàng nhận bất kỳ dữ liệu nào được nhậ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 mọi dữ liệu đã nhận bằng cách gọi lệnh gọi lại thích hợp.

Xem thêm:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive.

Bật đầu dò duy trì hoạt động 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.

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

– Phương thức 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ố lượng thời gian chờ.

Chi tiết
Giá trị trả về
WEAVE_NO_ERROR
khi bật thành công đầu dò giữ kết nối TCP trên kết nối.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi vì 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 phù hợp để gửi thông báo.
other
Lỗi lớp Inet liên quan đến điểm cuối TCP cho phép hoạt động duy trì hoạt động.

EnableReceive

void EnableReceive(
  void
)

Cho phép 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 địa chỉ IP của ứng dụng ngang hàng.

Chi tiết
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 vì 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.

Chi tiết
Tham số
[in] buf
Con trỏ trỏ đến vùng đệm mà chuỗi sẽ được ghi vào vùng đệm. Vùng đệ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ẽ được cắt bớt cho phù hợp. Dữ liệu đầu ra 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 trỏ 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 được liên kết với đối tượng WeaveConnection. Nếu việc này dẫn đến số lượng tham chiếu đạt 0 thì tức là kết nối bị đóng và đối tượng kết nối đượ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 thời gian chờ của người dùng TCP về chế độ mặc định của hệ thống.

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 thời gian chờ của người dùng chưa được đặt trên kết nối.

Chi tiết
Giá trị trả về
WEAVE_NO_ERROR
khi đặ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 vì 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 phù hợp để 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 trong thời gian chờ của người dùng TCP.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Gửi thư Weave qua một kết nối đã thiết lập.

Chi tiết
Tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] msgBuf
Con trỏ trỏ vào đối tượng PacketBuffer đang giữ gói cần 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 phù hợp để gửi thông báo.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
nếu mã nhận dạng nút đích không được chỉ định.
WEAVE_ERROR_SENDING_BLOCKED
nếu tin nhắn quá dài không thể gửi đi.
other
Lỗi lớp Inet liên quan đến các 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 có đường hầm qua kết nối Weave.

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

Chi tiết
Tham số
[in] msgInfo
Con trỏ trỏ đến đối tượng WeaveMessageInfo.
[in] msgBuf
Con trỏ trỏ vào đối tượng PacketBuffer đang giữ gói cần 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 phù hợp để gửi thông báo.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
nếu mã nhận dạng nút đích không được chỉ định.
WEAVE_ERROR_SENDING_BLOCKED
nếu tin nhắn quá dài không thể gửi đi.
other
Lỗi lớp Inet liên quan đến các thao tác gửi điểm cuối cụ thể.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

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

Chi tiết
Tham số
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

Đặt thời gian chờ ở trạng thái không hoạt động trên kết nối lớp mạng cơ bản.

Chi tiết
Tham số
[in] timeoutMS
thời gian chờ tính bằng mili giây.
Giá trị trả về
WEAVE_NO_ERROR
khi đặt thành công thời gian chờ ở trạng thái 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 thời gian chờ của người dùng TCP.

Khi giá trị lớn hơn 0, giá trị này 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 phải đóng kết nối tương ứng. Nếu giá trị tuỳ chọn được chỉ định là 0, thì TCP sẽ sử dụng giá trị mặc định của hệ thống. Hãy xem RFC 5482 để biết thêm chi tiết.

Chi tiết
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 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 có thể được gọi nhiều lần để điều chỉnh thời gian chờ của người dùng TCP.

Chi tiết
Giá trị trả về
WEAVE_NO_ERROR
khi thiết lập 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 vì 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 phù hợp để gửi thông báo.
other
Lỗi lớp Inet liên quan đến chế độ cài đặt điểm cuối của TCP trong thời gian chờ của người dùng TCP.

Tắt

WEAVE_ERROR Shutdown(
  void
)

Thực hiện quá trình tắt gửi TCP một cách linh hoạt, đảm bảo ngăn xếp TCP của mạ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ả) cách triển khai TCP, việc nhận được trạng thái tắt khi gửi cũng sẽ khiến máy chủ lưu trữ từ xa tắt phía kết nối, dẫn đến việc kết nối bị đóng. Lệnh gọi Close() tiếp theo sẽ chấm dứt WeaveConnection.

Chi tiết
Giá trị trả về
WEAVE_NO_ERROR
khi tắt thành công kết nối tcp.
WEAVE_ERROR_NOT_IMPLEMENTED
nếu hàm này được gọi vì 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 phù hợp 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 thiết bị đầu cuối cụ thể.
Xem thêm:
Close()abort().