跳到主要内容
版本: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,使用前建议先做类型检查。