using Cysharp.Threading.Tasks; using System; /// /// 网络服务接口 - 统一封装 Socket 和 WebSocket(适配 ClientSocket API) /// public interface INetworkService { /// /// 网络连接状态 /// NetworkState State { get; } /// /// 是否已连接(适配 ClientSocket.connected) /// bool IsConnected { get; } /// /// 最后收包时间(适配 ClientSocket.lastPackageTime) /// System.DateTime LastPackageTime { get; } /// /// 连接到服务器 /// /// 服务器地址(ws:// 或 wss:// 对于 WebSocket) UniTask ConnectAsync(string url); /// /// 断开连接(异步) /// UniTask DisconnectAsync(); /// /// 断开连接(同步,适配 ClientSocket.CloseConnect) /// void Disconnect(); /// /// 发送协议包(适配 ClientSocket.SendInfo) /// void SendInfo(GameNetPackBasic protocol); /// /// 发送二进制数据(适配 ClientSocket.SendInfo) /// void SendInfo(byte[] data); /// /// 发送二进制数据(异步) /// UniTask SendAsync(byte[] data); /// /// 连接状态改变事件 /// event Action OnStateChanged; } /// /// 网络连接状态 /// public enum NetworkState { Disconnected, // 未连接 Connecting, // 连接中 Connected, // 已连接 Reconnecting, // 重连中 Closed // 已关闭 }