【发布时间】:2012-07-03 22:44:00
【问题描述】:
我刚刚了解了彗星模式(长轮询),并且非常想用 Tomcat6 作为容器来实现一个简单的示例。 我在这里要做的是 - 我将调用一个 servlet,它生成一个介于 1 和 20 之间的随机数,并根据该随机数它应该等待该秒数,然后再响应客户端。
例如:如果生成的随机数是 10 ,那么 servlet 应该等待 10 秒再发送响应。
这是我实现CometProcessor的servlet
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 {
}
我想不通的是,我用这个event 方法做什么来做我想做的事。
我在这里知道的是,它们将是我可以在此方法中处理的一些事件,例如:BRGIN,READ,END,ERROR
我应该使用这样的事件吗?
if (event.getEventType() == CometEvent.EventType.BEGIN) {
event.setTimeout(numberOfSecondToWait);
}
this 教程对我来说似乎有点复杂。
【问题讨论】:
标签: java tomcat servlets comet long-polling