使用 akka websocket 处理程序时如何处理 PeerClosedConnectionException?

问题描述

我正在设置一个带有 websocket 端点的 akka http 服务器。但是,当我的 js 客户端通过 websocket.close(4001); 关闭连接时,服务器会抛出 akka.http.scaladsl.model.ws.PeerClosedConnectionException 并带有消息:Websocket handler Failed with Peer closed connection with code 4001。该异常似乎是一个无害的 RuntimeException,之后连接就会断开。但是,有没有办法明确地处理它?

我曾尝试使用监督决策程序,但是,它似乎不是来自 Flow 本身,我确实希望断开连接。

我的代码是这样的:

val handlerFlow: Flow[Message,Message _] = ???
request.attribute(AttributeKeys.webSocketUpgrade) match {
        case Some(upgrade) =>
          upgrade.handleMessages(handlerFlow)
        case _ => ???
}

理想情况下,当收到关闭代码时,我只想记录事件并中断流。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)