0 Вопрос: Параллельный вызов AbstractWebSocketHandler # handleTextMessage с тем же сеансом

вопрос создан в Wed, May 8, 2019 12:00 AM

При реализации низкоуровневого сервера веб-сокетов (без остановки) и расширения AbstractWebSocketHandler я заметил, что невозможно вызвать метод handleTextMessage() одновременно для одного и того же соединения /сеанса.

Учитывая следующее:

    @Override
    public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        log(String.format("Session: %s, Thread: %s", session, Thread.currentThread()));
        // simulated longrunning task
        Thread.sleep(10000L);
    }

При вызове отправки трех сообщений от клиента этому обработчику быстро после друг друга вывод журнала производится с промежутками в 10 секунд:

Session: StandardWebSocketSession[id=0, uri=/name], Thread: Thread[http-nio-127.0.0.1-8080-exec-2,5,main], Time: 18:09:25.143
Session: StandardWebSocketSession[id=0, uri=/name], Thread: Thread[http-nio-127.0.0.1-8080-exec-2,5,main], Time: 18:09:35.152
Session: StandardWebSocketSession[id=0, uri=/name], Thread: Thread[http-nio-127.0.0.1-8080-exec-2,5,main], Time: 18:09:45.156

Есть ли возможность настроить spring для одновременного вызова обработчика handleTextMessage()?

    
0
0 ответов                              0                         
источник размещен Вот