NetOption
Coding Style wiki
using OxGFrame.NetFrame;
核心設計概念
NetOption 是一個抽象基類,開發者在實作自定義的網絡協議(如 TCP, UDP, WebSocket)時,必須繼承此類別來定義該連線的特定配置。
Properties (屬性)
autoReconnectCount
- 類型:
int - 說明:設定自動重連的嘗試次數。
- 數值規則:
- 正整數 (n):當連線斷開時,會嘗試自動重新連線 N 次。
- -1:禁用自動重連(預設值)。
- int.MaxValue:理論上的無限次嘗試重連。
Constructor (建構函式)
NetOption(int autoReconnectCount)
- Params:
autoReconnectCount: 初始化的重連次數。預設為-1。
如何擴充 (Custom Option)
當您實作特定的網絡服務時,可以透過繼承 NetOption 來加入更多參數。
範例代碼:
public class TcpNetOption : NetOption
{
public string host { get; set; }
public int port { get; set; }
/// <summary>
/// Processes up to 'limit' messages per tick
/// </summary>
public int processLimitPerTick = _DEFAULT_PROCESS_LIMIT_PER_TICK;
/// <summary>
/// Max buffer size of single packet
/// </summary>
public int maxBufferSize = _MAX_BUFFER_SIZE;
/// <summary>
/// Default: process up to 64 packets per frame
/// </summary>
private const int _DEFAULT_PROCESS_LIMIT_PER_TICK = 64;
/// <summary>
/// Max packet size: 64KB (65536 bytes)
/// </summary>
private const int _MAX_BUFFER_SIZE = 65536;
public TcpNetOption(string host, int port, int autoReconnectCount = -1) : base(autoReconnectCount)
{
this.host = host;
this.port = port;
}
public TcpNetOption(string host, int port, int processLimitPerTick, int maxBufferSize = _MAX_BUFFER_SIZE, int autoReconnectCount = -1) : this(host, port, autoReconnectCount)
{
this.maxBufferSize = maxBufferSize;
this.processLimitPerTick = processLimitPerTick;
}
}