Я мигрирую из Play в Akka HTTP. У меня есть JAR-код зависимости, который я не могу изменить, который принимает
Flow[Array[Byte],Array[Byte],Any]
, что обеспечивает Play для подключения через WebSocket.
В HTTP Akka это определение
Flow[Message,Message,Any]
Мне нужен перевод между двумя определениями. Я новичок в Akka http, поэтому я не совсем уверен, как поступить. В игре я также использовал ActorFlow.actorRef
handleWebSocketMessages(wsFlow)
def wsFlow: Flow[Message, Message, Any] = {
ActorFlow.actorRef(websocket => MyBridgeActor.props(websocket))
}
Код ActorFlow зависит только от akka, поэтому я только что скопировал файл в свою базу кода.
https://github.com/playframework/playframework/blob/master/framework/src/play-streams/src/main/scala/play/api/libs/streams/ActorFlow.scala
Полагаю, решением было бы создать CustomActorFlow, который будет включать преобразование из Message в Array [Byte]. MyBridgeActor принимает веб-сокет в формате Flow [Array [Byte], Array [Byte], Any].