Я только что узнал о модели кометы (длинный опрос) и очень любопытно реализовать простой пример с Tomcat6 в качестве контейнера. То, что я пытаюсь сделать здесь, - я собираюсь назвать сервлет, который генерирует случайное число от 1 до 20 и на основе этого случайного числа он должен ждать этого количества секунд, прежде чем отвечать на запрос.Выполнение модели кометы с Tomcat6
Пример: если сгенерированное случайное число равно 10, сервлет должен подождать 10 секунд, прежде чем отправить ответ.
Вот мой сервлет, который реализует метод CometProcessor
public class RandomNumberGenerator extends HttpServlet implements CometProcessor {
doPost:
PrintWriter out =response.getWriter();
Random r = new Random();
int randomInt = r.nextInt(20) + 1;
out.print(randomInt);
out.flush();
out.close();
Теперь, как я реализовал CometProcessor
У меня есть метод события:
@Override
public void event(CometEvent event) throws IOException, ServletException {
}
Что я не могу понять, что, что Iv'e делать с этим event
метод делать то, что я хочу.
Что я знаю здесь, их будет несколько событий я могу обрабатывать внутри этого метода, как: BRGIN,READ,END,ERROR
Должен ли я использовать события, как это?
if (event.getEventType() == CometEvent.EventType.BEGIN) {
event.setTimeout(numberOfSecondToWait);
}
Я совершенно запутался, this учебник показаться немного сложным для меня.
все браузеры поддерживают WebSockets? – JAVAGeek
Текущее состояние игры с поддержкой браузера можно увидеть здесь: http://caniuse.com/#search=websockets Стандартная практика, когда WebSockets недоступны, - использовать [web-socket-js polyfill] (https: //github.com/pusher/web-socket-js). Для старых браузеров вы можете посмотреть резервные копии комет или просто перейти к стандартным опросам. Последний не идеален, но, вероятно, так я поеду - или постепенно улучшаю свое приложение, и если браузер не поддерживает WebSockets, тогда пользователь получит уменьшенную функциональность. – leggetter
Сегодня я реализовал комету с использованием DWR и работает как ожидалось ':)'. Ну, я определенно попробую веб-сокеты, поскольку это кажется очень интересным. Спасибо вам ! – JAVAGeek