Valve 时隔四年再次更新 GameNetworkingSockets 库:新增 Rust 绑定与 P2P 改进,从 CS 到 Dota 2 都在用
It之家3小时前
IT之家 4 月 29 日消息,Valve 于当地时间 4 月 28 日发布了 GameNetworkingSockets v1.5 版本。这也是该开源网络库自 2022 年 6 月 v1.4.1 版本以来的首次更新。GameNetworkingSockets 是 Valve 在 2018 年开源的 Steam 网络套接字库,作为游戏的基础网络传输层使用,已被《反恐精英》《刀塔 2》等游戏所采用,并支持 IPv6、P2P 网络、加密等特性。它支持可靠与不可靠消息类型,提供面向连接的 API,采用类似 UDP 的面向消息设计。v1.5 版本带来了多项 API 层面的变化,包括:更新了 ISteamNetworkingSockets::SendMessages 在发送失败场景下的语义且支持重试;新增 ECN、抖动统计、IPLocalHost_AllowWithoutAuth 等配置选项和访问器;新增 ISteamNetworkingMessages 的扁平 C API;新增 SteamNetworkingSockets_SetServiceThreadInitCallback 函数。此外,该版本还提供了由社区贡献的初始 Rust 语言绑定。在 P2P 方面,新版本修复了 WebRTC ICE 客户端中导致卡死的竞态条件错误,并对原生 ICE 客户端进行了大量 Bug 修复(尽管仍处于测试状态)。示例中的简易信令服务器用 Python 重写并修复了已知问题,同时已将 P2P 测试纳入持续集成(CI)流程。IT之家注意到,CI 测试已覆盖 macOS、多种 Linux 发行版及更多 Windows 版本,增加了多项测试并提升了 P2P 测试覆盖率。此次更新还包含了大量累积改进:自动纠正报文和消息队列层的部分乱序条件;修复了众多平台 / 编译器兼容性问题;改进了 CMake 与 vcpkg 的集成;解决了与新版 protobuf 和 abseil 的兼容性;新增 Windows 事件跟踪(ETW)诊断支持。此外,还包含加密、连接管理和线路协议方面的大量小错误修复,以及安全漏洞修复。