0
是否濫用或以某種方式使用akka-http這種危險?使用akka http分塊響應流式傳輸JSON對象
在服務器
def source(consumerOffset: UUID) =
readJournal.eventsByTag(「MyTag", consumerOffset).map(_.asJson)
pathPrefix("stream"/Segment.map(UUID.fromString)) { offset =>
pathEndOrSingleSlash {
get {
complete {
HttpResponse(
StatusCodes.OK,
entity = HttpEntity(ContentTypes.`application/json`, source(offset))
)
}
}
}
}
然後在客戶端
Source.single(HttpRequest("http://localhost:9000/stream"))
.mapAsync(1) { r =>
Http().singleRequest(r).map { res =>
res.entity.dataBytes.map(_.parse[Event])
}
}
.flatMapConcat(identity).mapAsync(processEvent)
UPD:
- 能夠保證所有的塊我送將客戶端上的相同。
- 可以迴應可能無數塊嗎?
- 什麼是正確的內容類型這種迴應?
UPD 2:與流響應
阿卡2.4.9附加能力。基本上完全一樣,提供一些語法糖。 查看docs。
你關心哪部分?這一切似乎是第一眼看到鍋爐... –
1.是否保證我發送的塊將在客戶端一樣。 –
2.可能有無數塊的響應可以嗎? –