27

我最近遇到了一个术语“反应式套接字”。到目前为止,我一直认为 websockets 是完全成熟的异步风格的方式。

那么什么是反应式套接字。

这个链接 ( http://rsocket.io/ ) 甚至谈到了 websockets 的比较。

4

2 回答 2

29

什么是 RSocket?

RSocket在网络边界上实现Reactive Streams规范。它是一种应用程序级通信协议,具有内置的框架、会话恢复和背压功能,可在网络上运行。

RSocket 与传输无关。RSocket 可以在 Websockets、TCP、HTTP/2 和 Aeron 上运行。

RSocket 与 Websockets 有何不同?

Websockets 不提供应用程序级背压,仅提供基于 TCP 的字节级背压。Websockets 也只提供框架,它们不提供应用程序语义。由开发人员来构建与 websocket 交互的应用程序协议。

RSocket 提供框架、应用程序语义、应用程序级背压,并且它不依赖于特定的传输。

有关创建 RSocket 背后的动机的更多信息,请查看 RSocket 网站上的动机文档。

于 2018-12-07T17:52:23.143 回答
20

WebSocket 和 RSocket 都是具有双向、多路、双工通信的协议。但两者都在不同的层次上工作。

WebSocket 是一种基于 TCP 的底层通信协议。它定义了如何将字节流转换为帧。但是 WebSocket 消息本身并没有关于如何路由或处理它的说明。因此,我们需要在 websocket 之上运行的消息协议,在应用程序级别,以实现双向通信。

RSocket是一种完全反应式的应用程序级协议,它运行在 TCP、WebSocket、UDP 或其他字节流传输上。它提供对网络的应用程序流控制,以防止中断并提高弹性。RSocket 采用了具有非阻塞背压的异步流处理的思想,其中发生故障的组件不会简单地丢弃流量,而是将其压力传达给上游组件,让它们减少负载。

于 2020-10-08T19:28:48.173 回答