Tomcat6.0よりCometが標準でサポートされました。
早速サンプルを作って試してみたいと思います。
Tomcat6.0はこちらから
開発にはEclipseを使いますが、3.2まではTomcat6.0に対応していないので、Eclipse3.3をインストールします。
CometのServlet基本形は以下の様になります。
JAVA:
-
package test;
-
-
import java.io.IOException;
-
import javax.servlet.ServletException;
-
import javax.servlet.http.HttpServlet;
-
import org.apache.catalina.CometEvent;
-
import org.apache.catalina.CometProcessor;
-
-
public class TestCometServlet extends HttpServlet implements CometProcessor {
-
-
private static final long serialVersionUID = -7518449035898058102L;
-
-
-
}
-
}
状況により下記の様なイベントが発生します。
・EventType.BEGIN: 接続処理開始
・EventType.READ: 入力データ
・EventType.END: 処理終了
・EventType.ERROR: エラー
イベントによって処理を切り替えるようにします。
JAVA:
-
package test;
-
-
import java.io.IOException;
-
import javax.servlet.ServletException;
-
import javax.servlet.http.HttpServlet;
-
import org.apache.catalina.CometEvent;
-
import org.apache.catalina.CometProcessor;
-
-
public class TestCometServlet extends HttpServlet implements CometProcessor {
-
-
private static final long serialVersionUID = -7518449035898058102L;
-
-
-
if (event.getEventType() == CometEvent.EventType.BEGIN) { // 接続処理開始
-
-
} else if (event.getEventType() == CometEvent.EventType.READ) { // データ入力
-
-
} else if (event.getEventType() == CometEvent.EventType.END) { // 処理終了
-
-
} else if (event.getEventType() == CometEvent.EventType.ERROR) { // エラー
-
-
}
-
}
-
}
つづく




