в школьном проекте мы кодировали игровую реализацию на Java и отображаем настоящую игру через Angular.Мы кодировали игровой объект, который представляет реальную игру, и создали класс «GameResource», который позволяет нам манипулировать аргументом игрового объекта в этом классе с помощью вызова REST следующим образом:
@PUT
@Path("moove/{x1}/{x2}/{y1}/{y2}")
@Produces(MediaType.APPLICATION_JSON)
public Response play(@PathParam("x1") final int oldX, @PathParam("x2") final int newX, @PathParam("y1") final int oldY, @PathParam("y2") final int newY) {
if (game.getBoard().getPiece(oldX, oldY).hasBall()) {
game.play(new MoveBall(oldX, oldY, newX, newY));
} else {
game.play(new MovePion(oldX, oldY, newX, newY));
}
game.flushUndo();
if (game.isFinished().isPresent()) {
return Response.ok().entity(game.isFinished().get()).build();
}
return Response.ok().entity(game).build();
}
Как видите,мы просто вызываем метод для игрового объекта и возвращаем игру, чтобы мы могли отобразить ее через Angular.Но проблема в том, что этот объект является общим для каждого пользователя, что означает, что 2 человека не могут играть одновременно.
Я уже кодировал многопоточный «облачный» сервис, который использует сокет и запускает новыйнить для обработки нового пользователя каждый раз, когда кто-то подключается к этому сокету, но я не знаю, как это сделать с помощью REST API, и даже если мне следует использовать REST API в этом случае.Любой совет будет очень приветствоваться, спасибо