2017-04-19 82 views
2

我是Play新手,正試圖將數組[字節]流式傳輸回給用戶。我一直在閱讀這個文件在Play FrameWork/scala - 返回來自陣列的流式響應[Byte]

https://www.playframework.com/documentation/2.5.x/ScalaStream

但是當我實現這一點,它說,分塊已被棄用,我應該用分塊與阿卡,而不是流來源。目前,我有

Ok.chunked(Source.fromBytes(file)) 

其中file是數組(字節),但錯誤的是:

Expected: Source[NotInferredC, _], actual: Source 

得到這個錯誤我一頭更深試圖讓不同的解決方案以後,再試圖使流實體其中,我有:

Ok.sendEntity(HttpEntity.Streamed(Source.fromBytes(file), None, None)) 

和相應的錯誤是:

expected: Source[ByteString, _] actual: Source 

我在想,如何將我的數組[字節]轉換爲適當的格式以便在響應中進行流式傳輸,以及選擇分塊和sendEntity方法有哪些好處。謝謝!

回答

0
val file: Array[Byte] = ??? 
Ok.sendEntity(HttpEntity.Strict(ByteString(file), None)) 

如果您的數據足夠小,可用於您的RAM,則使用Ok.sendEntity。但是,如果它很大,那麼你應該把它存儲在你的硬盤上,然後用小碎片(塊)把它們發送給用戶,並用Ok.chunked

+0

感謝它也幫助了我 –