使用Akka-Http和Akka-Streams版本2.4如何构建流,使其具有一个websocket的接收器。
例如,我希望有一个生成随机数的源,这些数字被过滤,让我们说保持偶数,然后作为接收器流到WebSocket。
由于
答案 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))
}
}