rsocket
rsocket kotlin是基于kotlinx
RSocket Kotlin是基于kotlinx.coroutines的多平台的实现,我们知道Kotlin多平台,主要涉及如Kotlin JVM、Kotlin/JS、Kotlin Mobile和Kotlin/Native等, 而RSocket-Kotlin则可以让这些Kotlin应用可以通过RSocket无缝对接,当然访问其他语言开发的RSocket服务也没有问题。此外Kotlin Coroutines和Flow都是异步化的, 这个和RSocket这样异步化消息通讯协议是完全匹配的,可以说RSocket和Coroutines/Flow完全是一体的,没有任何违和感。 目前RSocket Kotlin主要支持以下一些平台和对应的传输层:
在一些通讯协议中存在者双向通讯的场景
在一些通讯协议中存在者双向通讯的场景,也就是常说的Channel,既可以向Channel中发送消息,也可以从Channel中接收消息,如WebSocket RSocket Channel等,都是这一通讯模式。 这种交互性的通讯模式,存在者发送多个消息,而且在某些场景下可能还存在者消息的等待和发送顺序,对测试来说是比较麻烦的。 那么在JetBrains HTTP Client中是如何进行Channel的消息发送和消费的呢? 让我们看一个WebSocket的样例: 在收到WebSocket服务端回发的两个消息后,我们接下来就是连续发生两个消息,分别是"We send this message..."和"And this message together" 两个消息发送完毕后,接下来就是继续等待WebSocket服务端回发的消息,直到WebSocket连接被开发者主动关闭,如JetBrains IDE中点击close按钮
