Files
ShrinkNetwork/CHANGELOG.md
T
cneicy 401cecfc14
Publish UPM package / publish (push) Successful in 3s
Publish NuGet packages / publish (push) Successful in 1h19m42s
fix(tcp): 会话断开时不再访问已释放的 socket,确保 Disconnected 事件送达
- 服务端/客户端接收循环收尾改用连接时记录的远端地址
- 客户端本地 Stop 导致的读取中断按正常关闭处理
- 观察 Stop 后挂起的 accept 任务异常
- 版本 0.4.4
2026-11-10 18:36:30 +08:00

38 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`。