Tài liệu

Protocol String Extensions

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

Namespace: Nalix.SDK.Extensions
Assembly: Nalix.SDK

ProtocolStringExtensions cung cấp các chuỗi hiển thị ánh xạ bằng switch, không cấp phát bộ nhớ (ToDisplayString()), cho mọi giá trị enum ProtocolReason và ProtocolAdvice được mang trong các gói Directive và Control của server.

Ánh xạ mã nguồn

  • src/Nalix.SDK/Extensions/ProtocolStringExtensions.cs
  • src/Nalix.Abstractions/Networking/Protocols/ProtocolReason.cs
  • src/Nalix.Abstractions/Networking/Protocols/ProtocolAdvice.cs
  • src/Nalix.Codec/ProtocolFrames/Directive.cs
  • src/Nalix.Codec/ProtocolFrames/Control.cs

Chữ ký công khai

namespace Nalix.SDK.Extensions;

public static class ProtocolStringExtensions
{
    public static string ToDisplayString(this ProtocolReason reason);
    public static string ToDisplayString(this ProtocolAdvice advice);
}

Ánh xạ tiêu biểu

ProtocolReason.ToDisplayString()

Nhóm enumGiá trị tiêu biểuChuỗi hiển thị trả về
Khung & giao thứcMALFORMED_PACKET, CHECKSUM_FAILED, UNSUPPORTED_PACKET"Malformed packet.", "Invalid checksum.", "Unsupported packet."
Xác thực & phiênUNAUTHENTICATED, TOKEN_EXPIRED, TOKEN_REVOKED, ACCOUNT_LOCKED, SESSION_EXPIRED, SESSION_NOT_FOUND"Authentication required.", "Session expired.", "Session invalid.", "Account locked.", "Session expired.", "Session not found."
Giới hạn tốc độ & hạn mứcRATE_LIMITED, POW_REQUIRED, CONNECTION_LIMIT"Too many requests.", "Proof of Work required.", "Too many connections."
Mật mãCRYPTO_UNSUPPORTED, DECRYPTION_FAILED, KEY_ROTATION_REQUIRED"Unsupported cryptography.", "Decryption failed.", "Key rotation required."

ProtocolAdvice.ToDisplayString()

Giá trị ProtocolAdviceChuỗi hiển thị trả về
NONE"No action required."
RETRY"Please try again."
BACKOFF_RETRY"Please wait and try again."
DO_NOT_RETRY"Cannot retry automatically."
REAUTHENTICATE"Sign in again required."
SLOW_DOWN"Please slow down."
RECONNECT"Please reconnect."
FIX_AND_RETRY"Fix the issue and try again."
_ (mặc định)"Unknown action."

Ví dụ sử dụng

using System;
using Nalix.Codec.ProtocolFrames;
using Nalix.SDK.Extensions;
using Nalix.SDK.Transport.Extensions;

session.On<Directive>(directive =>
{
    string reasonText = directive.Reason.ToDisplayString();
    string adviceText = directive.Advice.ToDisplayString();

    Console.WriteLine($"Server Directive [{directive.Type}]: {reasonText} {adviceText}");
});

API liên quan