Я создаю средство запуска / обновления игры, и мне нужно заставить клиентов загружать последнюю версию игры, если доступно обновление или есть проблема с целостностью файлов.
Мне нужно что-то, способное создать «дельта-патч» между клиентской локальной игрой и официальным релизом на сервере.
Мне кажется, что rsync - это то, что мне нужно, с его способностью загружать только разные двоичные части (я прав?).
Однако что, если сотни клиентов нуждаются в обновлении, и они одновременно выполняют синхронизацию на моем единственном сервере?
Подходит ли rsync?
Спасибо, если у вас есть какая-либо информация, которая может привести меня к правильному пути.
Одним из возможных решений может быть упаковка вашего программного обеспечения с использованием собственного формата ОС (например, RPM), подписание ваших пакетов (обычно выполняется с помощью GPG) и предоставление вашего репозитория по каналу HTTPS (необязательно с помощью клиентских сертификатов, которыми вы можете управлять).
Преимущества использования надежных, проверяемых и известных технологий для распространения изменений многочисленны. Он также дает возможность проверять целостность файлов.
Ваше требование о распределении только дельт также может быть выполнено с помощью deltarpm
.
В большинстве дистрибутивов на основе RPM есть инструменты для создания этого deltarpm
пакеты.