RSocket面向連接的、消息驅動的協(xié)議
RSocket 就是為服務而設計的。它是面向連接的、消息驅動的協(xié)議,內置了應用程序級的流控制。它在瀏覽器中和在服務器上一樣工作。事實上,Web 瀏覽器可以服務于后端微服務的流量。它也是二進制的。它可以同樣好地處理文本和二進制數據,并且可以分解有效工作負載。它將應用程序中的所有交互建模為網絡原語。這意味著,你可以流化數據或執(zhí)行發(fā)布 / 訂閱,而無需設置應用程序隊列。
目前提供 Java、JavaScript、C++ 和 Kotlin 版本實現。
服務端示例代碼:
RSocketFactory.receive() .frameDecoder(Frame::retain) .acceptor(new PingHandler()) .transport(TcpServerTransport.create(7878)) .start() .block() .onClose();
客戶端示例代碼:
Mono<RSocket> client =
RSocketFactory.connect()
.frameDecoder(Frame::retain)
.transport(TcpClientTransport.create(7878))
.start();PingClient pingClient = new PingClient(client);Recorder recorder = pingClient.startTracker(Duration.ofSeconds(1));int count = 1_000;pingClient .startPingPong(count, recorder)
.doOnTerminate(() -> System.out.println("Sent " + count + " messages."))
.blockLast();評論
圖片
表情
