跳到主要内容

WebSocket 传输

ChatGPT-4o-mini 中英对照 WebSocket Transport

本节解释如何配置底层的 WebSocket 服务器传输。

对于 Jakarta WebSocket 服务器,请在您的配置中添加一个 ServletServerContainerFactoryBean。有关示例,请参见 WebSocket 部分下的 配置服务器

对于 Jetty WebSocket 服务器,按如下方式自定义 JettyRequestUpgradeStrategy

@Configuration
@EnableWebSocketMessageBroker
public class JettyWebSocketConfiguration implements WebSocketMessageBrokerConfigurer {

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/portfolio").setHandshakeHandler(handshakeHandler());
}

@Bean
public DefaultHandshakeHandler handshakeHandler() {
JettyRequestUpgradeStrategy strategy = new JettyRequestUpgradeStrategy();
strategy.addWebSocketConfigurer(configurable -> {
configurable.setInputBufferSize(4 * 8192);
configurable.setIdleTimeout(Duration.ofSeconds(600));
});
return new DefaultHandshakeHandler(strategy);
}
}
java

除了 WebSocket 服务器属性外,还有 STOMP WebSocket 传输属性可以自定义,如下所示:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration implements WebSocketMessageBrokerConfigurer {

@Override
public void configureWebSocketTransport(WebSocketTransportRegistration registry) {
registry.setMessageSizeLimit(4 * 8192);
registry.setTimeToFirstMessage(30000);
}
}
java