介绍
- 官网: https://rsocket.io/
- 介绍文章: https://cloud.tencent.com/developer/article/1546821
example
- C++
server:
// RSocket server accepting on TCP
auto rs = RSocket::createServer(TcpConnectionAcceptor::create(FLAGS_port));
// global request handler
auto handler = std::make_shared<HelloStreamRequestHandler>();
// start accepting connections
rs->startAndPark([handler](auto r) { return handler; });
client:
auto rsf = RSocket::createClient(TcpConnectionFactory::create(host, port));
auto s = std::make_shared<ExampleSubscriber>(5, 6);
auto rs = rsf->connect().get();
rs->requestStream(Payload("Jane"), s);
交互模型
RSocket定义了四种交互模型来弥补Http协议的不足之处:
- Fire-and-Forget:优化请求/响应,在不需要响应时非常有用,例如非关键事件日志记录。
- Request/Response:类似Http的请求/响应模型 但是具有Http没有的优点,它是异步和多路复用的。
- Request/Stream:单个请求可以接收多个响应。例如获取视频列表、获取目录中的产品
- Channel: 该模型模型提供双向通信。在此模型中,消息流在两个方向上异步流动。例如发生更改时,从服务器向客户端发出增量/差异
gRPC和RSocket之间的区别
- http://www.dreamwu.com/post-1425.html
- https://medium.com/netifi/differences-between-grpc-and-rsocket-e736c954e60