我正在构建一个游戏启动器/更新程序,如果有可用更新或文件完整性存在问题,则需要让客户端下载最新的游戏版本。
我需要能够在客户端本地游戏和服务器上的官方版本之间生成“增量补丁”的东西。
rsync 似乎就是我所需要的,它能够仅下载不同的二进制部分(我是对的吗?)。
但是,如果数百个客户端需要更新,并且它们同时在我唯一的服务器上进行 rsync ,该怎么办?
rsync 是正确的工具吗?
如果您有任何信息可以指引我找到正确的方向,我将不胜感激。
答案1
一种可能的解决方案是使用操作系统的本机格式(例如 RPM)打包您的软件,签署您的软件包(通常使用 GPG 完成),并通过 HTTPS 通道公开您的存储库(可以选择使用您可以控制的客户端证书)。
使用可信、可验证且已知的技术来分发变更具有多种优势。它还提供了验证文件完整性的能力。
您对仅分发增量的需求也可以通过以下方式实现deltarpm
。
大多数基于 RPM 的发行版都有创建此类deltarpm
包的工具。