Из того, что я вижу, я ничего не вижу из коробки, которая будет делать то, что вы ищете.
Итак, я бы подошел к этому, взяв вашу собственную версию Play и изменив исходный код так, чтобы
- Объект HTTP Response содержит поле предельной скорости загрузки, которое можно установить, когда вы хотите ограничить это значение
- Измените класс PlayHandler (возможно, writeChunk), который отвечает за запись ответа обратно в браузер, чтобы он устанавливал некоторый уровень приостановки каждую секунду, чтобы обеспечить вывод только на требуемая ставка.
Возможно, на уровне Netty может быть более подходящее решение, но я бросил быстрый взгляд и ничего не смог найти. Однако я не эксперт Netty, поэтому, возможно, вам стоит взглянуть сюда самим.
Альтернативным методом будет реализация вашего собственного метода Render, который расширяет метод RenderBinary, но это ограничивает вас только загрузками файлов, поэтому может не подходить повсеместно, но потребует меньше кодирования для конкретного сценария и может быть выполнено без необходимости изменять какой-либо основной игровой код. Пример пользовательского метода Render можно найти в модуле PDF Николаса Леру