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