У меня есть два метода @MessageMapping в контроллере. Один из них выполняет некоторую логику инициализации, а другой обрабатывает сообщения.
После создания соединения через веб-сокет клиент вызывает конечную точку инициализации, а затем (почти сразу) два раза конечную точку процессора сообщений.
Насколько я знаю, Spring поддерживает два пула потоков (для входящего и исходящего канала) для распараллеливания выполнения.
Проблема в том, что метод init занимает слишком много времени, и его необходимо запустить до метода обработки сообщений, но все методы выполняются одновременно.
Как мне сказать Spring, что он должен выделить только один поток для соединения через веб-сокет, чтобы запустить один метод за один раз? Если это невозможно, любые предложения приветствуются.
Я уже попробовал это предложение , но оно может ограничить только пул потоков всего входящего и исходящего канала, и я просто хочу ограничить только одно соединение с веб-сокетом.
@MessageMapping("/chat/init")
public void initChat(...) { ... }
@MessageMapping("/chat/send")
public void sendMessage(...) { ... }