Skip to content

Commit 9f617be

Browse files
enviousrstoyanchev
authored andcommitted
maxFramePayloadLength property in ReactorNettyWebSocketClient
Closes gh-22367
1 parent 2b4cd5c commit 9f617be

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

spring-webflux/src/main/java/org/springframework/web/reactive/socket/client/ReactorNettyWebSocketClient.java

+17-3
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,17 @@
3737
* {@link WebSocketClient} implementation for use with Reactor Netty.
3838
*
3939
* @author Rossen Stoyanchev
40+
* @author Usman Arshad
4041
* @since 5.0
4142
*/
4243
public class ReactorNettyWebSocketClient implements WebSocketClient {
4344

4445
private static final Log logger = LogFactory.getLog(ReactorNettyWebSocketClient.class);
4546

47+
private int maxFramePayloadLength = 65536;
4648

4749
private final HttpClient httpClient;
4850

49-
5051
/**
5152
* Default constructor.
5253
*/
@@ -63,14 +64,27 @@ public ReactorNettyWebSocketClient(HttpClient httpClient) {
6364
this.httpClient = httpClient;
6465
}
6566

66-
6767
/**
6868
* Return the configured {@link HttpClient}.
6969
*/
7070
public HttpClient getHttpClient() {
7171
return this.httpClient;
7272
}
7373

74+
/**
75+
* Return the configured maxFramePayloadLength used by the configured {@link HttpClient}.
76+
* Default value of 65536 if not set.
77+
*/
78+
public int getMaxFramePayloadLength() {
79+
return maxFramePayloadLength;
80+
}
81+
82+
/**
83+
* Sets the maxFramePayloadLength to be used by the configured {@link HttpClient}.
84+
*/
85+
public void setMaxFramePayloadLength(int maxFramePayloadLength) {
86+
this.maxFramePayloadLength = maxFramePayloadLength;
87+
}
7488

7589
@Override
7690
public Mono<Void> execute(URI url, WebSocketHandler handler) {
@@ -81,7 +95,7 @@ public Mono<Void> execute(URI url, WebSocketHandler handler) {
8195
public Mono<Void> execute(URI url, HttpHeaders requestHeaders, WebSocketHandler handler) {
8296
return getHttpClient()
8397
.headers(nettyHeaders -> setNettyHeaders(requestHeaders, nettyHeaders))
84-
.websocket(StringUtils.collectionToCommaDelimitedString(handler.getSubProtocols()))
98+
.websocket(StringUtils.collectionToCommaDelimitedString(handler.getSubProtocols()), getMaxFramePayloadLength())
8599
.uri(url.toString())
86100
.handle((inbound, outbound) -> {
87101
HttpHeaders responseHeaders = toHttpHeaders(inbound);

0 commit comments

Comments
 (0)