การใช้ akka-http แบบนี้ถือเป็นการละเมิดหรือเป็นอันตรายหรือไม่?
บนเซิร์ฟเวอร์
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)
อัปเดต:
- รับประกันหรือไม่ว่าชิ้นที่ฉันส่งจะเหมือนกันในฝั่งไคลเอ็นต์
- เป็นไปได้ไหมที่จะมีการตอบสนองด้วยจำนวนชิ้นส่วนที่ไม่มีที่สิ้นสุด?
- Content-Type ที่เหมาะสมสำหรับการตอบกลับประเภทนี้คืออะไร
อัปเดต 2:
Akka 2.4.9 เพิ่มความสามารถในการตอบสนองต่อสตรีม และโดยพื้นฐานแล้วจะทำสิ่งเดียวกันทุกประการโดยให้น้ำตาลไวยากรณ์บางส่วน ดูเอกสาร .
idle connection timeout
สำหรับสถานการณ์ดังกล่าว - person Denis Mikhaylov   schedule 26.06.2017