1

コメットパターン(ロングポーリング)について学び、Tomcat6をコンテナとして使用した簡単な例を実装することに非常に興味があります。ここで私がやろうとしているのは、1から20までの乱数を生成するサーブレットを呼び出し、その乱数に基づいて、クライアントに応答する前にその秒数待機する必要があるということです。

例:生成された乱数が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 {

    }

私が理解できないのは、event私がやりたいことをするためにこの方法で何をするかということです。

私がここで知っていることは、それらは私がこのメソッド内で処理できるいくつかのイベントになるでしょう:BRGIN,READ,END,ERROR

このようなイベントを使用する必要がありますか?

if (event.getEventType() == CometEvent.EventType.BEGIN) {
    event.setTimeout(numberOfSecondToWait);
}

このチュートリアルは私には少し複雑に見えるので、私は完全に混乱しています。

4

1 に答える 1

2

私は最近、 WebSocketとCometに関するブログ投稿を書き、「Comet」の発明者に意見を求めました。

要約すると、AlexはWebSocketがCometに取って代わると述べました。

したがって、人々はまだCometを使用していますが、Cometソリューションがハッキングした問題を解決するために特別に作成されたため、最終的にはWebSocketに置き換えられます。

焦点をWebSocketに移すことをお勧めします。

于 2012-07-03T15:32:57.060 に答える