2

我对 RSocket 完全陌生。

我阅读了常见问题解答和动机页面(并浏览了协议页面)并了解 RSocket 可以在 TCP、WebSocket 和 Aeron 之上使用。但是我不明白将 RSocket 与这些传输一起使用之间有什么区别,因为所有交互模型都可以与每种传输一起使用。

我个人对使用 RSocket 通道来启用双向通信很感兴趣,但不知道我应该使用哪种传输方式。例如RSocket (channel) + TCPRSocket (channel) + WebSocket有什么区别?

我在任何地方都找不到答案,所以我希望这里有人可以帮助我。

提前泰。

4

2 回答 2

1

RSocket 为多种传输提供了一个通用的编程接口。您可以根据传输提供的服务质量选择传输。例如,如果您需要轻松穿越防火墙,请选择 WebSocket,如果您需要低延迟和高吞吐量传输,请选择 Aeron。一切都是相对的。Aeron 可以穿越防火墙,但配置更专业,WebSocket 可以提供合理的性能,但它与 Aeron 不在同一类。

许多其他因素也会发挥作用,因此您需要了解底层传输及其提供的质量,并将其与您的要求相匹配。

于 2021-04-30T08:54:05.477 回答
1

RSocket 让您使用单一的反应式网络编程模型跨平台(JS、iOS、Android、C++ 服务器)进行编程。干净地支持来自 RxJava(Observable、Flowable、Single、Maybe、Completable)等框架的常见反应式操作。

底层传输是一个实现细节。但这是一个关键的实现细节,因为在 GCP 中托管的移动设备和服务器之间,WebSocket 可能是唯一可行的选择。在数据中心中,您可以根据需要选择 Aeron 或 TCP。

无论您选择什么,您都可以针对相同的更高级别的响应式网络操作模型进行编写。如果你知道你只需要说 Aeron 来进行单个服务器到服务器的操作,你可能不需要 RSocket,你可以直接针对 Aeron 进行编程。RSocket 在它之上给了你这个抽象。

于 2021-05-01T03:49:48.513 回答