播放框架如何使用 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")
}
使用 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")
}