【问题标题】:Buffer overflow using WebSockets in Play Framework在 Play Framework 中使用 WebSockets 的缓冲区溢出
【发布时间】:2021-01-04 18:39:23
【问题描述】:

在我们使用 websockets 的在线游戏中,我们每天多次收到以下错误:

ERROR p.c.s.common.WebSocketFlowHandler - WebSocket flow threw exception
akka.stream.BufferOverflowException: Buffer overflow (max capacity was: 16)!

我们没有关于在哪里查看的想法。有谁知道为什么会这样?

或者,我们有什么方法可以在 Play Framework 的 WebSocketFlowHandler 中启用调试信息,以了解缓冲区被填满的原因?

【问题讨论】:

  • akka 流中的默认 msg 数是 16。肯定问题出在 Play 中的 akka 流配置中,如果只是 akka,我会使用类似 `val bufferedFlow = flow.buffer (40, overflowStrategy = OverflowStrategy.backpressure)`。但是我用Play很久了,不知道在哪里给你这个配置。
  • 这可能与playframework.com/documentation/2.8.x/ScalaStream 的“发送大量数据”有关。你怎么看?也许您可以发布用于使用有效负载的 HttpRequest/Response。
  • 感谢您的意见。我将检查如何更改缓冲区大小

标签: java websocket playframework akka


【解决方案1】:

这个配置对我有用

akka.stream.materializer.max-input-buffer-size = 16384

【讨论】:

  • 它到底是做什么的?流物化器和 websocket 的链接是什么?
猜你喜欢
  • 2015-12-16
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
  • 2011-09-07
  • 2020-05-09
  • 2013-04-11
相关资源
最近更新 更多