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

2.3 KiB
Raw Permalink Blame History

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。