Tài liệu

Kiểu điều khiển

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

Không gian tên: Nalix.Abstractions.Networking.Protocols
Assembly: Nalix.Abstractions

ControlType (byte) xác định lệnh hệ thống được mang trong khung protocol Control (ProtocolOpCode.SYSTEM_CONTROL = 0x0001).

Ánh xạ mã nguồn

  • src/Nalix.Abstractions/Networking/Protocols/ControlType.cs
  • src/Nalix.Codec/ProtocolFrames/Control.cs

Định nghĩa enum

HexTênMô tả
0x00NONEKhông chỉ định thông điệp điều khiển.
0x01PINGYêu cầu kiểm tra sự sống và đo độ trễ round-trip.
0x02PONGPhản hồi cho yêu cầu PING.
0x04DISCONNECTThông báo ngắt kết nối có kiểm soát, mang ProtocolReason.
0x05ERRORThông báo lỗi protocol, giới hạn tốc độ, quyền hoặc dispatch.
0x09RESUMETiếp tục một phiên bị gián đoạn.
0x0ASHUTDOWNYêu cầu hoặc thông báo máy chủ tắt có kiểm soát.
0x0BREDIRECTChỉ dẫn client kết nối lại tới endpoint khác.
0x0DNOTICEThông báo bảo trì hoặc vận hành mang tính thông tin.
0x10TIMEOUTHandler hoặc yêu cầu bị hết thời gian chờ trên máy chủ.
0x11FAILThất bại thao tác chung.
0x12TIMESYNCREQUESTClient yêu cầu thời gian máy chủ độ phân giải cao (TimeSync).
0x13TIMESYNCRESPONSEPhản hồi của máy chủ mang timestamp độ phân giải cao.
0x14CIPHER_UPDATEYêu cầu chuyển CipherSuiteType đang hoạt động.
0x15CIPHER_UPDATE_ACKXác nhận chuyển đổi bộ mật mã.
0x16PUBLIC_KEY_REQUESTClient yêu cầu khóa công khai tĩnh của máy chủ (TOFU).
0x17POW_REQUESTClient yêu cầu câu đố Proof-of-Work.
0x18SESSION_REKEYYêu cầu xoay vòng khóa đối xứng của phiên.
0x19SESSION_REKEY_ACKXác nhận hoàn tất xoay vòng khóa phiên.
0xFERESERVED1Dành riêng cho mở rộng protocol trong tương lai.
0xFFRESERVED2Dành riêng cho mở rộng protocol trong tương lai.

Cách dùng

Khung Control được cấp phát qua pool bằng PacketBase<Control>.Create() và mặc định dùng PacketFlags.SYSTEM:

using Nalix.Abstractions.Networking.Packets;
using Nalix.Abstractions.Networking.Protocols;
using Nalix.Codec.ProtocolFrames;

Control ping = Control.Create();
ping.Initialize(ControlType.PING, sequenceId: 42, reason: ProtocolReason.NONE, flags: PacketFlags.SYSTEM);

API liên quan