我刚刚了解了彗星模式(长轮询),并且非常想用 Tomcat6 作为容器来实现一个简单的示例。我在这里要做的是 - 我将调用一个 servlet,它生成一个介于 1 到 20 之间的随机数,并根据该随机数它应该在响应客户端之前等待该秒数。
例如:如果生成的随机数是 10 ,那么 servlet 在发送响应之前应该等待 10 秒。
这是我实现的servletCometProcessor
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);
}
我完全感到困惑,因为本教程对我来说似乎有点复杂。