Skip to content

Commit 0ac54d4

Browse files
authored
RSocketFactory API enhancements (#780)
This commit adds RSocketConnector and RSocketServer (io.rsocket.core) as replacements for the now deprecated RSocketFactory (io.rsocket). A key goal for the change is to avoid a class in the top-level package with references to sub-packages which leads to package cycles, but also an opportunity to review and improve the API. Closes gh-778 Signed-off-by: Rossen Stoyanchev <[email protected]>
1 parent a9c385a commit 0ac54d4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1661
-1600
lines changed

README.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ Example:
2323

2424
```groovy
2525
dependencies {
26-
implementation 'io.rsocket:rsocket-core:1.0.0-RC3'
27-
implementation 'io.rsocket:rsocket-transport-netty:1.0.0-RC3'
26+
implementation 'io.rsocket:rsocket-core:1.0.0-RC6'
27+
implementation 'io.rsocket:rsocket-transport-netty:1.0.0-RC6'
2828
// implementation 'io.rsocket:rsocket-core:1.0.0-RC4-SNAPSHOT'
2929
// implementation 'io.rsocket:rsocket-transport-netty:1.0.0-RC4-SNAPSHOT'
3030
}
@@ -57,7 +57,7 @@ package io.rsocket.transport.netty;
5757

5858
import io.rsocket.Payload;
5959
import io.rsocket.RSocket;
60-
import io.rsocket.RSocketFactory;
60+
import io.rsocket.core.RSocketConnector;
6161
import io.rsocket.transport.netty.client.WebsocketClientTransport;
6262
import io.rsocket.util.DefaultPayload;
6363
import reactor.core.publisher.Flux;
@@ -67,14 +67,14 @@ import java.net.URI;
6767
public class ExampleClient {
6868
public static void main(String[] args) {
6969
WebsocketClientTransport ws = WebsocketClientTransport.create(URI.create("ws://rsocket-demo.herokuapp.com/ws"));
70-
RSocket client = RSocketFactory.connect().keepAlive().transport(ws).start().block();
70+
RSocket clientRSocket = RSocketConnector.connectWith(ws).block();
7171

7272
try {
73-
Flux<Payload> s = client.requestStream(DefaultPayload.create("peace"));
73+
Flux<Payload> s = clientRSocket.requestStream(DefaultPayload.create("peace"));
7474

7575
s.take(10).doOnNext(p -> System.out.println(p.getDataUtf8())).blockLast();
7676
} finally {
77-
client.dispose();
77+
clientRSocket.dispose();
7878
}
7979
}
8080
}
@@ -89,25 +89,24 @@ or you will get a memory leak. Used correctly this will reduce latency and incre
8989

9090
### Example Server setup
9191
```java
92-
RSocketFactory.receive()
92+
RSocketServer.create(new PingHandler())
9393
// Enable Zero Copy
94-
.frameDecoder(PayloadDecoder.ZERO_COPY)
95-
.acceptor(new PingHandler())
96-
.transport(TcpServerTransport.create(7878))
97-
.start()
94+
.payloadDecoder(PayloadDecoder.ZERO_COPY)
95+
.bind(TcpServerTransport.create(7878))
9896
.block()
9997
.onClose()
10098
.block();
10199
```
102100

103101
### Example Client setup
104102
```java
105-
Mono<RSocket> client =
106-
RSocketFactory.connect()
103+
RSocket clientRSocket =
104+
RSocketConnector.create()
107105
// Enable Zero Copy
108-
.frameDecoder(PayloadDecoder.ZERO_COPY)
109-
.transport(TcpClientTransport.create(7878))
110-
.start();
106+
.payloadDecoder(PayloadDecoder.ZERO_COPY)
107+
.connect(TcpClientTransport.create(7878))
108+
.start()
109+
.block();
111110
```
112111

113112
## Bugs and Feedback

0 commit comments

Comments
 (0)