Akka-Http WebSocket:Akka流使用WebSocket作为接收器

时间:2016-02-06 21:51:54

标签: scala websocket akka akka-stream akka-http

使用Akka-Http和Akka-Streams版本2.4如何构建流,使其具有一个websocket的接收器。

例如,我希望有一个生成随机数的源,这些数字被过滤,让我们说保持偶数,然后作为接收器流到WebSocket。

由于

1 个答案:

答案 0 :(得分:3)

此代码放入akka http路由将输出连续的随机数流而不会压倒websocket

path("randomNums") {
  val src =
    Source.fromIterator(() => Iterator.continually(ThreadLocalRandom.current.nextInt()))
          .filter(i => i > 0 && i % 2 == 0).map(i => TextMessage(i.toString))

    extractUpgradeToWebsocket { upgrade =>
      complete(upgrade.handleMessagesWithSinkSource(Sink.ignore, src))
    }
}