跳至主要内容
版本:v3

INetTips

重要 注意 提醒

Coding Style wiki


INetTipsNetFrame 的連線狀態提示介面。當節點的連線狀態發生變化(開始連線、連線成功、連線錯誤、斷線、重連)時,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 傳入 0WebSocketNetProvider 傳入開啟事件參數)。

說明

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


OnConnectionError

void OnConnectionError(object payload)

參數

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

說明

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


OnDisconnected

void OnDisconnected(object payload)

參數

參數型別說明
payloadobject斷線的相關資訊(內建 TcpNetProvider / KcpNetProvider 傳入 -1WebSocketNetProvider 傳入關閉代碼;自動重連結束轉入斷線時為 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,使用前建議先做型別檢查。