播放框架如何使用 akka 流输出到 websocket

Play framework How to use akka streams output to a websocket

使用 Scala 在 Playframework 中将流的输出发送到 Web 套接字的最简单方法是什么。

我希望 WebSocket 充当流的接收器。 例如,源生成一个随机数,然后转到接收器 (Websocket),以便将其推送到客户端。

谢谢

"The easiest" 有点主观,但您可以考虑 here.

中描述的 Play 实验性反应流支持

将 Reactive Streams 集成库包含到您的项目中。

libraryDependencies += "com.typesafe.play" %% "play-streams-experimental" % "2.4.4"

对模块的所有访问都是通过 Streams 对象进行的。

下面是一个将 Future 改编成单元素 Publisher 的例子。

val fut: Future[Int] = Future { ... }
val pubr: Publisher[Int] = Streams.futureToPublisher(fut)

有关详细信息,请参阅 Streams 对象的 API documentation

如果你在谈论 Play 2 中新的 Akka 流集成。5.x(仍然是 M2),那么我认为这应该作为一个简单的有效流来完成工作,它代表一个回显服务器(带有触摸)。

  def socket = WebSocket.accept[String, String] {
    request =>
      Flow[String]
        .map(_ + " Back")
  }