#java #servlets #applet
#java #сервлеты #апплет
Вопрос:
Я реализую простую игру в шашки (java-апплеты в качестве клиентов сервлет), где два игрока могут подключиться к сервлету и играть. Поскольку я только начинаю с программирования апплет-сервлет, у меня возникли некоторые проблемы с правильной связью.
Предположим, что игра начинается, и первый игрок делает ход. Затем я должен отправить его ход сервлету, который должен сообщить другому игроку. И здесь я не знаю, как это сделать. Как сервлет может передавать полученные данные другому апплету, а не тому, который его отправил? Как и где сервлет должен хранить информацию, связанную с игроками, чтобы он мог распознать, какой из них отправил данные?
Комментарии:
1. Это может стать сложным и может быть достигнуто различными способами. Если вы выполняете простой HTTP, ваш сервлет не может перейти ко второму апплету. Здесь решением может быть опрос, так что второй апплет постоянно запрашивает сервлет, доступны ли новые данные или нет. Если вы хотите использовать HTTP WebSockets и / или COMET, это будет другая альтернатива.
2. Я думаю, что игра HTML5 была бы более современной и лучшим решением. Кто больше использует апплеты?
3. @duffymo, это звучит как школьный проект
Ответ №1:
Fisrt: сервлет не будет передавать данные или сообщения ни одному сервлету по своей инициативе. Ему придется подождать, пока апплет отправит запрос, а затем сможет отправить правильный ответ.
Итак, самым простым кажется, что ваши апплеты регулярно отправляют запросы сервлету, например «что случилось?». Это система опроса, о которой говорит ome. Чтобы распознать, какой игрок опрашивает, дайте ему идентификатор при первом доступе к вашему сервлету (регистрация?) и сделайте этот идентификатор присутствующим в каждом будущем запросе.
Это достаточно ясно? 🙂
(и да, следующий шаг — использовать COMET)