当我们使用Spring的RSocket ()支持使用Kotlin流和反应堆流发出值时,IO流量有什么不同吗?
@MessageMapping("stream")
suspend fun send(): kotlinx.coroutines.flow.Flow<SomeClass> = ...VS
@MessageMapping("stream")
fun send(): reactor.core.publisher.Flux<SomeClass> = ...另外,客户端代码(带有rsocket-websocket-client的JS)应该是不同的,这取决于服务器是使用Kotlin流还是反应堆流量?
发布于 2021-03-26 14:16:48
不,应该是一样的。春天应该照顾好它们之间的差异。也就是说,如果你观察到有什么虫子,你应该把它们养大。
客户端代码不应该能够观察服务器是使用Flux还是Flow定义的。此外,希望客户端也不知道服务器的实现语言。
我不认为你的第一个例子也需要暂停,因为流动通常是冷的。https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/
流接口不携带以下信息:流是可以重复收集的冷流,每次收集时触发相同代码的执行,或者如果它是一个热流,在每个集合上从相同的运行源发出不同的值。通常流代表冷流
https://stackoverflow.com/questions/66809608
复制相似问题