【问题标题】:Play Framework WebSocket HandlingPlay 框架 WebSocket 处理
【发布时间】:2016-04-08 12:03:43
【问题描述】:

在以下代码中:

  def myRequest: WebSocket[JsValue, JsValue] =
    WebSocket.acceptWithActor[JsValue, JsValue] { request => out =>

      val filtered: Set[Long] = // how to get the request body???

      WebSocketActor.props(filtered, out)
    }

如何访问请求正文,以便在内容被传递到 Actor 实例之前对其进行一些过滤? Play 框架的文档不是很清楚。有什么建议吗?

【问题讨论】:

    标签: scala playframework websocket


    【解决方案1】:

    简而言之,你不能。

    这是因为 websocket 连接(即升级)的初始 http 请求不应包含正文,因为它只不过是一个简单的 GET 请求。 Play Framework 会这样对待它,给你RequestHeaderRequest 没有正文)而不是Request 对象。

    如果您需要从客户端传递数据以在服务器中查看,例如凭证或身份验证令牌,您仍然可以使用 Authorization 标头或简单查询字符串。

    另请注意,Play 的 websocket 文档是 currently outdated,尽管 acceptWithActor 及其变体在新的 play 2.5.x 中已被弃用,取而代之的是 acceptOrResult 及其朋友使用来自 akka-stream 的 Flow

    【讨论】:

      猜你喜欢
      • 2022-12-13
      • 2014-03-27
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多