Код: Выделить всё
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
public static final String WS_ENDPOINT = "/notifications/v1";
public static final String EVENTS_CHANNEL = "/events";
public static final String ERRORS_CHANNEL = "/errors";
@Autowired
private StompMessageChannelInterceptor stompMessageChannelInterceptor;
@Override
public void registerStompEndpoints(final StompEndpointRegistry registry) {
registry.addEndpoint(WS_ENDPOINT)
.setAllowedOrigins("*")
.addInterceptors(new WebsocketHandshakeInterceptor())
.setHandshakeHandler(new WebsocketHandshakeInterceptor());
}
@Override
public void configureMessageBroker(final MessageBrokerRegistry registry) {
registry.enableSimpleBroker(EVENTS_CHANNEL, ERRORS_CHANNEL);
}
@Override
public void configureClientInboundChannel(final ChannelRegistration registration) {
registration.interceptors(stompMessageChannelInterceptor);
}
@Override
public void configureWebSocketTransport(final WebSocketTransportRegistration registration) {
registration.addDecoratorFactory(new WebSocketHandlerDecoratorFactory() {
@Override
public WebSocketHandler decorate(final WebSocketHandler webSocketHandler) {
return new WebSocketSessionCapturingHandlerDecorator(webSocketHandler);
}
});
}
}
Код: Выделить всё
public class ApiPoolExecutor extends ThreadPoolTaskExecutor {
private static final long serialVersionUID = 1L;
@Override
public Future submit(final Runnable task) {
return super.submit(new SomeLogicForRunnable(task));
}
@Override
public ListenableFuture submitListenable(final Runnable task) {
return super.submitListenable(new SomeLogicForRunnable(task));
}
@Override
public ListenableFuture submitListenable(final Callable task) {
return super.submitListenable(new SomeLogicForRunnable(task));
}
@Override
public void execute(final Runnable task) {
super.execute(new SomeLogicForRunnable(task));
}
}
Код: Выделить всё
@Override
public void configureClientInboundChannel(final ChannelRegistration registration) {
registration.interceptors(stompMessageChannelInterceptor);
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setMaxPoolSize(100);
executor.setCorePoolSize(100);
executor.setBeanName("ws-pool-exec");
executor.initialize();
registration.executor(new WebSocketTaskPoolExecutor());
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-boot-3
Мобильная версия