Я разрабатываю простой чат.Мне действительно нравится весенний API websocket на основе Tomcat, но есть одна проблема.Tomcat использует модель на основе потоков.Если у меня около 500 онлайн-пользователей, tomcat запускает 200 потоков (значение по умолчанию), и мой процессор умирает.Поэтому мне нужна реализация websocket, основанная на цикле обработки событий.Я решил попробовать новый весенний реактивный API с веб-сокетами.
Итак, мне нужен чат с чатами.Когда какой-либо пользователь отправляет сообщение в чате, он должен быть отправлен всем пользователям в чате.
Spring предлагает следующий API:
@Service
public class ChatWebSocketHandler implements WebSocketHandler {
@Override
public Mono<Void> handle(WebSocketSession session) {
Mono<Void> input = ;
Mono<Void> output = ;
return Mono.zip(input, output).then();
}
}
Не существует API для обнаружения *События 1008 * и disconnected
(как это было с Tomcat).Поэтому я не могу сохранить коллекцию active sessions
, которую можно использовать для трансляции сообщений.