Я создаю шахматное веб-приложение. Он имеет RESTful MVC java задний конец. В настоящее время я сделал процесс регистрации, входа в систему, аутентификации и сброса пароля. Это было довольно просто. Теперь я должен выполнить роль, в которой будут происходить все игры в шахматы.
1. У меня есть класс GameController
, в котором будет вызываться метод startGame(UserDetails user)
, если пользователь захочет играть с кем-то. И у меня будет несколько синхронизированных List
пользователей. Каждый пользователь, который нажимает кнопку «играть в быструю игру» на своей клиентской стороне, будет сохранен в этом List
, а затем будет связан с другим случайным пользователем. После этого будет создан новый поток с соединением WebSocket между этими пользователями, в котором они смогут обмениваться своими шахматными ходами.
Вопросы: Как перенаправить пользователя в его пользовательскую конечную точку Websocket? Должен ли я передать конечную точку как returnValue startGame(UserDetails user)
метод контроллера? Если да, то будет ли он поточно-ориентированным, поскольку метод startGame(UserDetails user)
должен быть использован по крайней мере еще одним пользователем до создания конечной точки Websocket?
2. Должен быть какой-то класс отвечает за сопряжение пользователей постоянно, если в очереди не менее 2 пользователей. Кроме того, он должен группировать пользователей в соответствии с их рейтингом, иначе слабые игроки будут в паре с сильными. И никому из них не понравится игра.
Вопросы: Как сделать процесс постоянного сопряжения? Есть какой-то правильный шаблон или, может быть, я должен просто использовать какой-то метод do while()
? Как группировать пользователей по рейтингу? Должен ли я добавить всех пользователей в 1 общий List
, а затем отсортировать их по рейтингу, или я должен сначала отсортировать пользователей и только потом добавлять их в соответствующий List
? Какой тип коллекции подойдет для этого случая?
Заранее спасибо!