67 lines
1.6 KiB
Markdown
67 lines
1.6 KiB
Markdown
|
|
# 🌐 Net 网络模块
|
|||
|
|
|
|||
|
|
适用于 Unity 的网络模块,包含网络检测、接口请求、Token 鉴权、服务器时间同步等功能。模块职责清晰、易扩展,使用前需引入通用模块。
|
|||
|
|
|
|||
|
|
------
|
|||
|
|
|
|||
|
|
## 📦 模块概览
|
|||
|
|
|
|||
|
|
| 模块 | 功能描述 |
|
|||
|
|
| ---------------- | --------------------------------------------------- |
|
|||
|
|
| `NetChecker` | 📶 检测网络是否可用,支持 Ping / HTTP 检查 |
|
|||
|
|
| `NetCore<T>` | 📡 网络请求基类,支持加密和 Token 自动处理(需继承) |
|
|||
|
|
| `TokenManager` | 🔐 Token 缓存 / 自动刷新 / 登录回退处理 |
|
|||
|
|
| `ServerClock` | 🕒 同步服务器时间,避免设备本地误差 |
|
|||
|
|
| `WebSocket 模块` | 依赖 nativewebsocket 插件 |
|
|||
|
|
|
|||
|
|
------
|
|||
|
|
|
|||
|
|
## ✅ 使用示例
|
|||
|
|
|
|||
|
|
### 1. 网络检测
|
|||
|
|
|
|||
|
|
```c#
|
|||
|
|
StartCoroutine(NetChecker.Instance.WaitUntilNetworkConnected(10, 1f, success => {
|
|||
|
|
if (success) Debug.Log("✅ 网络可用");
|
|||
|
|
}));
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
------
|
|||
|
|
|
|||
|
|
### 2. 实现你的请求类(必须继承 NetCore)
|
|||
|
|
|
|||
|
|
```c#
|
|||
|
|
public class NetKit : NetCore<NetKit> {
|
|||
|
|
// 详情参考此类
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
------
|
|||
|
|
|
|||
|
|
### 3. 发起接口请求(在子类中)
|
|||
|
|
|
|||
|
|
```c#
|
|||
|
|
NetKit.Instance.Post<TrackData>("/event/incrN", trackData,
|
|||
|
|
response => {
|
|||
|
|
callback?.Invoke(response.IsSuccess, response.Data);
|
|||
|
|
});
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
------
|
|||
|
|
|
|||
|
|
### 4. Token 获取(自动缓存)
|
|||
|
|
|
|||
|
|
```c#
|
|||
|
|
yield return TokenManager.Instance.GetToken(token => {
|
|||
|
|
Debug.Log("当前 Token:" + token);
|
|||
|
|
});
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
------
|
|||
|
|
|
|||
|
|
### 5. 服务器时间同步
|
|||
|
|
|
|||
|
|
```c#
|
|||
|
|
ServerClock.Init(serverUnixTime);
|
|||
|
|
var now = ServerClock.GetCurrentServerTime();
|
|||
|
|
```
|