考虑服务器上有无限Stream
(java.util.stream.Stream)数据的情况,如下所示。
Stream.iterate(0,k-> k++);
我需要一种方法,这样我就可以拥有一个可以订阅该流并使用rx.Observable
读取其内容的客户端。
我确实尝试从服务器端的 Controller 返回一个Observable
,但出现以下异常java.lang.IllegalArgumentException:找不到类型为返回值的转换器:class rx.Observable
项目设置:
- 服务器和客户端是 Spring Boot 应用程序
- 编码和解码是使用 jackson-databind 完成的
具体问题:
- 我错过了什么? (要阅读的主题)
- 有没有办法使用任何其他 API 来编码
Observable
?
附注
我需要一个设置,客户端可以主动订阅和取消订阅服务器。
由于我是响应式编程的新手,请随时提出修改建议,以使问题变得更好。
最佳答案
我能够通过关注 Spring Tips: the Spring Web Flux Reactive Client 找到我的问题的解决方案
由于 Spring 5 的新 WebFlux 组件尚未最终确定(M. Deinum 在他的评论中提到),因此还没有可用的 javadoc,因此除非有人有足够的耐心来尝试不同类提供的不同方法,否则实际上不可能找到正确的解决方案。
以下链接可用于进一步查看和引用:
WebFlux Framework- spring doc
Spring Tips: Functional Reactive Endpoints with Spring Framework 5.0
附注
如果您找到更好的链接和教程,请随时编辑和更新答案。
关于java - rxjava中如何不断地将数据流式传输到客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44388663/