跳至主要内容
版本:v3

INetTips

重要 注意 提醒

Coding Style wiki​


INetTips 是 NetFrame 的連線狀態提示介面。當節點的連線狀態發生變化(開始連線、連線成功、連線錯誤、斷線、重連)時,NetNode 會自動呼叫對應的介面方法,適合用來實作連線 Loading 遮罩、錯誤彈窗與斷線重連提示等 UI 回饋。

命名空間OxGFrame.NetFrame
類型public interface
原始碼INetTips.cs
using OxGFrame.NetFrame;

宣告

public interface INetTips

狀態與觸發時機​

NetNode 內部以 NetStatus 列舉管理連線狀態,每次狀態變化都會觸發對應的 INetTips 方法:

NetStatus對應方法觸發時機
CONNECTINGOnConnecting呼叫 Connect 啟動連線程序時。
CONNECTEDOnConnected連線成功建立時。
CONNECTION_ERROROnConnectionError通訊發生錯誤時。
DISCONNECTEDOnDisconnected連線關閉或中斷時。
RECONNECTINGOnReconnecting斷線後進入自動重連程序時。

提醒 可於建立 NetNode 時傳入實作實例(new NetNode(provider, netTips)),或透過 NetNode.SetNetTips 設定。

成員總覽​

方法說明
OnConnecting開始啟動連線程序時觸發。
OnConnected連線成功建立時觸發。
OnConnectionError通訊發生錯誤時觸發。
OnDisconnected連線關閉或中斷時觸發。
OnReconnecting進入自動重連程序時觸發。

OnConnecting​

void OnConnecting()

說明

呼叫 NetFrames.Connect(或 NetNode.Connect)啟動連線程序時觸發。通常在此開啟「連線中」的 UI 遮罩,防止使用者重複操作。


OnConnected​

void OnConnected(object payload)

參數

參數型別說明
payloadobject連線成功的相關資訊,內容依 Provider 而異(內建 TcpNetProvider / KcpNetProvider 傳入 0;WebSocketNetProvider 傳入開啟事件參數)。

說明

連線成功建立時觸發。通常在此關閉連線遮罩,並開始執行「登入」或「同步資料」等後續流程。


OnConnectionError​

void OnConnectionError(object payload)

參數

參數型別說明
payloadobject錯誤資訊(內建實作皆傳入錯誤訊息字串)。

說明

通訊發生錯誤時觸發。通常在此彈出錯誤訊息視窗,提示使用者檢查網路環境。


OnDisconnected​

void OnDisconnected(object payload)

參數

參數型別說明
payloadobject斷線的相關資訊(內建 TcpNetProvider / KcpNetProvider 傳入 -1;WebSocketNetProvider 傳入關閉代碼;自動重連結束轉入斷線時為 null)。

說明

連線關閉或中斷時觸發(無論主動關閉或意外斷線)。通常在此執行資料清理,或返回登入畫面。


OnReconnecting​

void OnReconnecting()

說明

連線非主動關閉而中斷、節點進入自動重連程序時觸發。通常在此顯示「網路不穩定,嘗試重連中...」的提示 UI。

注意

繼承實作範例​

定義一個類別實作 INetTips,並掛載至 NetNode:

using OxGFrame.NetFrame;
using UnityEngine;

public class NetTipsExample : INetTips
{
public void OnConnecting()
{
// 開啟「連線中」遮罩,防止重複操作
Debug.Log("連線中...");
}

public void OnConnected(object payload)
{
// 關閉遮罩,執行登入或同步資料等後續流程
Debug.Log($"連線成功: {payload}");
}

public void OnConnectionError(object payload)
{
// 顯示連線錯誤提示
Debug.LogError($"連線錯誤: {payload}");
}

public void OnDisconnected(object payload)
{
// 清理資料或返回登入畫面
Debug.LogWarning($"連線中斷: {payload}");
}

public void OnReconnecting()
{
// 顯示「重連中」提示 UI
Debug.Log("嘗試重新連線中...");
}
}
// 建立節點時傳入
var netNode = new NetNode(new TcpNetProvider(), new NetTipsExample());

// 或於既有節點上設定
netNode.SetNetTips(new NetTipsExample());

注意 payload 的實際內容取決於底層 Provider,使用前建議先做型別檢查。