【发布时间】:2018-12-07 14:49:40
【问题描述】:
我正在从 Play 迁移到 Akka HTTP。我有 jar 依赖代码,我无法更改它接受
Flow[Array[Byte],Array[Byte],Any]
这是 Play 为 WebSocket 连接提供的。 在 Akka HTTP 中,定义是
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] 格式的 websocket。
【问题讨论】:
标签: scala websocket playframework akka-http