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

Akka-Http WebSocket: Akka stream use WebSocket as a sink

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

例如,我想要一个生成随机数的源,这些数字被过滤,假设保留偶数,然后作为接收器流向 WebSocket。

谢谢

此代码放入 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))
    }
}