如何从Akka HTTP获取WebSocket关闭代码?

时间:2018-06-19 16:23:56

标签: scala akka akka-stream akka-http

我们正在使用Akka HTTP通过akka stream API处理Web套接字连接。我们正在使用将传入消息传递到“连接参与者”的流。该代码段如下:

val connection = system.actorOf(ConnectionActor.props())

val in = Flow[Message]
  .to(Sink.actorRef[Message](connection, WebSocketClosed))

val out = Source
  .actorRef[Message](500, OverflowStrategy.fail)
  .mapMaterializedValue(ws => connection ! WebSocketOpened(ws))

Flow.fromSinkAndSource(in, out)

关闭Web套接字后,将向连接参与者发送“ WebSocketClose”消息,我们将清理内部资源。现在,我们需要知道根据标准WebSocket CloseEvent codes关闭连接的原因是什么。

是否可以从Akka HTTP获取关闭代码并将其发送到连接参与者,以便它可以采取适当的措施?

1 个答案:

答案 0 :(得分:0)

事实证明,这在Akka HTTP中目前是不可能的。请参阅以下GitHub问题:

https://github.com/akka/akka-http/issues/2458

看来这需要先解决。