- 服务端/客户端接收循环收尾改用连接时记录的远端地址 - 客户端本地 Stop 导致的读取中断按正常关闭处理 - 观察 Stop 后挂起的 accept 任务异常 - 版本 0.4.4
38 lines
2.3 KiB
Markdown
38 lines
2.3 KiB
Markdown
# Changelog
|
||
|
||
本文件记录 `ShrinkNetwork` 在当前工作区中的包内变更。
|
||
|
||
## [0.4.4] - 2026-11-10
|
||
|
||
### Fixed
|
||
|
||
- TCP 服务端:会话接收循环结束时不再读取已释放 socket 的 `RemoteEndPoint`,改用接入时记录的地址;此前客户端主动断开会抛出 `ObjectDisposedException`,`Disconnected` 事件丢失,上层仍向已断开会话发送并报 `Session N is not connected`。
|
||
- TCP 客户端:接收循环收尾同样改用连接时记录的地址,本地 `Stop()` 导致的读取中断按正常关闭处理,不再向 Unity 日志抛出 `ObjectDisposedException`。
|
||
- TCP 服务端:`Stop()` 后挂起的 accept 任务异常被观察,不再产生未观察的 `SocketException`。
|
||
|
||
## [0.2.0] - 2026-05-18
|
||
|
||
### Changed
|
||
|
||
- 静态消息合同与静态 handler 的默认自动发现从运行时全域反射扫描切换为编译期注册表 `ShrinkNetworkGeneratedRegistry`。
|
||
- `ShrinkNetworkRuntime.Default` 启动时优先消费编译期消息/handler 清单,降低默认服务的注册开销。
|
||
- `RegisterHandlers(object target)` 的实例注册路径保持不变,继续服务于模组实例和运行时对象。
|
||
|
||
## [0.1.0] - 2026-04-07
|
||
|
||
### Added
|
||
|
||
- 正式建立 RPC 优先的 Unity 网络层,包含服务、会话、路由、消息注册、权限与日志基础设施。
|
||
- 建立属性式注册模型:`[ShrinkNetworkMessage]`、`[ShrinkNetworkSubscriber]`、`[ShrinkNetworkSubscribe]`。
|
||
- 提供 `ShrinkJsonNetworkSerializer` 与 `ShrinkMessagePackNetworkSerializer`。
|
||
- 提供 `Loopback`、TCP、KCP 传输实现,以及独立服务器生成器与生成宿主链路。
|
||
- 新增会话令牌能力,`ShrinkNetworkPacket`、`ShrinkNetworkSession`、`ShrinkNetworkService` 支持令牌签发、回传与逐包校验。
|
||
- TCP 传输与生成宿主补上可选 TLS 接入。
|
||
- 宿主侧补上 `server.properties` 文本配置、协议版本窗口与基础指标摘要。
|
||
|
||
### Changed
|
||
|
||
- 运行时公共类型按真实语义收口可空性,覆盖消息元数据、权限、注册器、路由器、会话、服务、序列化器与传输层。
|
||
- `GetDefaultInitializer(...)` 现会为任意 `T[]` 生成 `Array.Empty<T>()`,避免重新生成合同后数组默认值 warning 回弹。
|
||
- 当前工作区中 `ShrinkSDK.sln` 与独立宿主工程已重新收口到 `0 warning / 0 error`。
|