我最近遇到过“反应套接字”一词。到目前为止,我曾经认为websockets是完全成熟的异步风格的方法。
那么什么是无功套接字。
这个链接(http://reactivesocket.io/)甚至讨论了对websockets的比较。
答案 0 :(得分:3)
RSocket在网络边界上实现Reactive Streams规范。它是具有帧,会话恢复和内置反压功能的应用程序级通信协议,可通过网络运行。
RSocket与传输无关。 RSocket可以在Websockets,TCP,HTTP / 2和Aeron上运行。
Websockets不提供应用程序级背压,仅提供基于TCP的字节级背压。 Websocket也仅提供框架,不提供应用程序语义。开发人员应建立与Websocket交互的应用程序协议。
RSocket提供了框架,应用程序语义,应用程序级背压,并且它不受特定传输的约束。
有关创建RSocket的动机的更多信息,请在RSocket网站上查看motivations doc。
答案 1 :(得分:0)
WebSocket和RSocket都是具有双向,多路复用,双工通信功能的协议。但是两者的工作水平不同。
WebSocket 是在TCP上分层的低级通信协议。它定义了字节流如何转换为帧。但是WebSocket消息本身没有有关如何路由或处理它的说明。因此,我们需要在应用程序级别在websocket之上运行的消息传递协议来实现双向通信。
RSocket 是一种完全反应性的应用程序级别协议,可在字节流传输(例如TCP,WebSocket,UDP或其他)上运行。它提供了对网络的应用程序流控制,以防止中断并提高弹性。 RSocket采用了具有无阻塞背压的异步流处理的思想,在这种方法中,发生故障的组件将向上游组件传达压力,而不是简单地减少流量,从而减轻上游负载。