Можно ли использовать http4k для потоковой передачи длинных ответов?
Я хотел бы использовать http4k для потоковой передачи длинного ответа. Я планирую использоватьContent-type: multipart/x-mixed-replace
поэтому я отправляю данные клиенту бесконечно. В http4k у нас естьtypealias HttpHandler = (Request) -> Response
. Но мой обработчик не может вернуть ответ, потому что это не ограниченный документ, который я хочу вернуть, а бесконечный поток. Означает ли это, что я должен использовать что-то еще для того, что хочу?
2 ответа
Если вы используете другой HTTP-источник, вы можете использовать режим потоковой передачи основного текста в одном из различных клиентских модулей HTTP (Apache/OkHttp/Jetty будет работать).
В качестве альтернативы, если вы сами генерируете контент или выполняете потоковую передачу из базы данных, вам придется запустить поток и обрабатывать его таким образом. В исходном коде тестового примера есть пример того, как это сделать, чтобы доказать, что различные клиенты могут выполнять потоковую передачу.
Может быть, этот веб-сокет - это то, что вам нужно?
https://www.http4k.org/blog/typesafe_websockets/
Таким образом, вы можете иметь бесконечный поток событий (например, вам нужно отправить ленту).