- 服务端/客户端接收循环收尾改用连接时记录的远端地址 - 客户端本地 Stop 导致的读取中断按正常关闭处理 - 观察 Stop 后挂起的 accept 任务异常 - 版本 0.4.4
2.3 KiB
2.3 KiB
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。