Spring Boot – So konfigurieren Sie die maximale Nutzlastgröße des WebsocketsJava

Java-Forum
Guest
 Spring Boot – So konfigurieren Sie die maximale Nutzlastgröße des Websockets

Post by Guest »

Ich habe versucht, die maximale Nutzlastgröße für Binär- und Textnachrichten für die Websocket-Serveranwendung in Spring Boot zu konfigurieren, ohne Erfolg.
Es ist berechtigt zu erwähnen, dass ich sie nicht verwende AbstractWebSocketMessageBrokerConfigurer für Broker-Nachrichten mit STOMP, der die Methode zum Konfigurieren der Nutzlastgröße enthält, zum Beispiel:

Code: Select all

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

@Override
public void configureWebSocketTransport(WebSocketTransportRegistration registry) {
registry.setMessageSizeLimit(8 *1024);
registry.setSendBufferSizeLimit(8 *1024);
registry.setSendTimeLimit(8 *1024);
}
}
Auch der Versuch, ServletServerContainerFactoryBean als Teil der Websocket-Konfigurations-Bean einzuschleusen, funktioniert nicht:

Code: Select all

  @Bean
public ServletServerContainerFactoryBean createWebSocketContainer() {
ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean();
container.setMaxTextMessageBufferSize(8 * 1024);
container.setMaxBinaryMessageBufferSize(8 * 1024);
return container;
}
Unter Verwendung des unformatierten WebSocket-Handlers habe ich bisher keine Möglichkeit gefunden, das Limit zu konfigurieren, außer innerhalb der AbstractWebSocketHandler-Instanz als Teil der Methode afterConnectionEstablished für jede Sitzung wie folgt.

Code: Select all

public class WebSocketHandler extends AbstractWebSocketHandler {
private static final Logger logger = LoggerFactory.getLogger(WebSocketHandler.class);

/**
* @param session
*/
@Override
public void afterConnectionEstablished(WebSocketSession session) {
logger.info("Connection established on session: {}", session.getId());

session.setBinaryMessageSizeLimit(64 * 1024); // Can be loaded from profile configuration parameter
session.setTextMessageSizeLimit(64 * 1024);   // Can be loaded from profile configuration parameter
}
}
Frage:
  • Vermisse ich etwas, eine Profilkonfigurationsvariable, eine Bean? Das kann injiziert werden, oder ist dies die einzige Möglichkeit, die maximale Nutzlastgröße für Websocket-Nachrichten zu konfigurieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post