Как включить сжатие сообщений websocket deflate (с протоколом rsocket) при весенней загрузке (с сервером netty)

Я хочу включить сжатие permessage-deflate на стороне сервера в сетевой среде, используя websocket и rsocket. Мое рукопожатие сейчас выглядит так:

введите здесь описание изображения

Я использую зависимости:

 <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-websocket</artifactId>
        <version>5.2.2.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-messaging</artifactId>
        <version>5.2.2.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-rsocket</artifactId>
    </dependency>

Есть ли какое-либо свойство в весенней загрузке для поддержки этой функциональности?


person UngaBunga007    schedule 12.11.2020    source источник


Ответы (1)


По умолчанию сжатие permessage-deflate отключено на стороне сервера в среде netty. Вам нужно определить bean-компонент WebSocketService с Reactor-Netty и установить для сжатия значение true, чтобы активировать его:

@Bean
public WebSocketHandlerAdapter handlerAdapter(WebSocketService webSocketService) {
    return new WebSocketHandlerAdapter(webSocketService);
}
@Bean
public WebSocketService webSocketService() {
    return new HandshakeWebSocketService(
    new ReactorNettyRequestUpgradeStrategy(WebsocketServerSpec.builder().compress(true)));
}

введите здесь описание изображения

person Andrianekena Moise    schedule 06.01.2021