在Play 2.6中編寫WebSocket代理(基於Websocket Proxy using Play 2.6 and akka streams)時,我遇到了處理流式文本的問題。使用Akka播放2.6 WebSocket代理 - 如何處理流式傳輸文本與嚴格文本
關注代碼:
def proxySocket: WebSocket = WebSocket.accept[String, String] { _ =>
Flow[String].map(s => TextMessage(s))
.via(websocketFlow)
.map(_.asTextMessage.getStrictText)
}
這是工作代理到本地的WebSocket服務器。但是,儘管代理到遠程服務器,它會導致以下錯誤:
java.lang.IllegalStateException: Cannot get strict text for streamed message.
我們可以通過_.asTextMessage.getStreamedText
獲得流的消息,但我無法弄清楚如何將其轉化成String
。