Коллеги, помогите разобраться с архитектурой. Допустим я пишу браузерную игру Камень Ножницы Бумага на спринге. После авторизации пользователь попадает в лобби, где есть кнопка Поиск игры. По клику на кнопку, фронт дергает метод контроллера и сервер кладет его в очередь. Когда в очереди появляется второй игрок, начинается матч. Во время матча игрок не может попасть в лобби просто введя другой адрес в строке браузера, так же как и разлогинившись. Условия выхода это конец матча или кнопка Сдаться. Вот этот матч, это с точки зрения Спринга, что? Я должен как-то передавать сессию, или например добавить флаг isInGame в Entity, или как-то еще? Какое вообще правильное решение?
1. Игрок должен иметь возможность ливнуть с матча, иначе второй будет висеть вечно. Таймер надо сделать, чтобы ему засчиталось поражение, если он истечет.
2. При этом, если человек заходит заново, надо проверить нет ли у него сейчас актуальной игры, в которой он находится.