Tài liệu

Tổng quan SDK

Thời gian đọc 3 phút Gói: Nalix.SDK
Trên trang này

Namespaces: Nalix.SDK, Nalix.SDK.Transport, Nalix.SDK.Transport.Extensions, Nalix.SDK.Extensions, Nalix.SDK.Options
Assembly: Nalix.SDK

Nalix.SDK là gói transport và giao thức phía client của Nalix. Nó cung cấp các phiên client cụ thể (TcpSession, UdpSession, WebSocketSession), một contract phiên trừu tượng/interface (TransportSession / ITransportSession), handshake X25519 với TOFU/ghim khóa và giải Proof-of-Work, tiếp tục phiên 0-RTT, xoay khóa HKDF (RekeyAsync), các helper yêu cầu/phản hồi có ghép cặp (RequestAsync / TryRequestAsync), streaming (StreamAsync / RequestWithStreamAsync), và các RPC client proxy được sinh từ mã nguồn (CreateRpcClient<T>).

Ánh xạ mã nguồn

  • src/Nalix.SDK/Transport/ (ITransportSession.cs, TransportSession.cs, SessionState.cs, TcpSession.cs, UdpSession.cs, WebSocketSession.cs)
  • src/Nalix.SDK/Transport/Extensions/ (HandshakeExtensions.cs, ResumeExtensions.cs, CipherExtensions.cs, RekeyExtensions.cs, RequestExtensions.cs, StreamExtensions.cs, HeaderStreamExtensions.cs, ChannelExtensions.cs, ObservableExtensions.cs, RpcExtensions.cs, PingExtensions.cs, DisconnectExtensions.cs, TimeSyncExtensions.cs, ControlExtensions.cs, TransportSessionSubscriptions.cs)
  • src/Nalix.SDK/Extensions/ (ProtocolStringExtensions.cs, SubscriptionExtensions.cs)
  • src/Nalix.SDK/Options/ (TransportOptions.cs, WebSocketTransportOptions.cs, RequestOptions.cs, RequestOutcome.cs)
  • src/Nalix.SDK/IThreadDispatcher.cs, src/Nalix.SDK/InlineDispatcher.cs, src/Nalix.SDK/TimeSyncCalculator.cs

Kiến trúc client

Architecture Diagram
flowchart TD
    subgraph App["Client Application"]
        Req["RequestAsync / TryRequestAsync / CreateRpcClient<T>"]
        Stream["StreamAsync / RequestWithStreamAsync / SubscribeChannel"]
        Sub["On<TPacket> / AsObservable<TPacket>"]
    end

    subgraph Session["ITransportSession / TransportSession"]
        State["SessionState (Secret, SessionToken, EncryptionEnabled, LocalPort)"]
        Sup["ReconnectSupervisor + KeepAlive Monitor"]
        TCP["TcpSession"]
        UDP["UdpSession"]
        WS["WebSocketSession"]
    end

    subgraph Framers["Internal Framers + FramePipeline"]
        TF["TcpFrameSender / TcpFrameReader"]
        UF["UdpFrameSender / UdpFrameReader"]
        WF["WsFrameSender / WsFrameReader"]
    end

    App --> Session
    TCP --> TF
    UDP --> UF
    WS --> WF

Bản đồ tham chiếu API

Phiên transport

Mở rộng bảo mật, điều khiển & yêu cầu

Tiện ích & tùy chọn

Ví dụ bắt đầu nhanh

using Nalix.SDK.Options;
using Nalix.SDK.Transport;
using Nalix.SDK.Transport.Extensions;

TransportOptions options = new()
{
    Address = "127.0.0.1",
    Port = 57206,
    AutoReconnectEnabled = true,
    KeepAliveIntervalMillis = 15_000
};

using TcpSession client = new(options);

// 1. Kết nối và thực hiện handshake X25519 có xác thực
await client.ConnectAsync();
await client.HandshakeAsync();

// 2. Gửi một yêu cầu có ghép cặp và chờ phản hồi
LoginResponse reply = await client.RequestAsync<LoginResponse>(
    new LoginRequest { Username = "Alice" },
    RequestOptions.Default.WithTimeout(3_000).WithEncrypt());

// 3. Ngắt kết nối một cách êm thấm
await client.DisconnectGracefullyAsync();

API liên quan