(어플리케이션 개발) Comet with Tomcat

Tomcat 6.0/conf/server.xml 수정

기존
  1. <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
수정
  1. <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000" redirectPort="8443" />
HTTP/1.1 (=org.apache.coyote.http11.Http11Protocol) [기본값]
org.apache.coyote.http11.Http11NioProtocol - 논 블로킹 자바 커넥터(Comet을 사용시) / NIO를 사용
org.apache.coyote.http11.Http11AprProtocol - APR 커넥터(아파치 등과 연동시 유용)
redirectPort: SSL요청이 아닌 연결에 대해 리다이렉트 할 포트를 지정
port: 연결이 들어올 서버 소켓의 TCP 포트 번호
connectionTimeout: 커넥터를 위해 기다릴 밀리초의 숫자를 적음. 연결이 이루어진 이후에 URI에 대해 보존될 시간
   (기본값: 60초 / 60000, AJP의 경우 기본값은 unlimited이다.)
useComet : comet 서블릿을 허용할지 여부 설정 (기본값: true)
maxKeepAliveRequests : 서버에 의해 닫을 HTTP 연결의 최대 제한수(1: HTTP/1.0 keep-alive 미사용&HTTP/1.1 keep-alive및 파이프라이닝 사용, 무제한, -1: 무제한, 기본값: 100)
socket.bufferPool: Nio 채널이라고 불리는 소켓에 담아둘 엘리먼트의 수(기본값: 500, -1:무제한, 0: 캐싱안함)

위의 Connector만 수정하고 기존과 수정후의 까딸리나 로그(catalina.2011-09-24.log)를 확인해보았다.
다른 부분만 추려봤다.

기존
2011. 9. 24 오후 3:49:21 org.apache.coyote.http11.Http11AprProtocol init
정보: Initializing Coyote HTTP/1.1 on http-8080
2011. 9. 24 오후 3:49:21 org.apache.coyote.http11.Http11AprProtocol start
정보: Starting Coyote HTTP/1.1 on http-8080
수정후
2011. 9. 24 오후 3:51:27 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
정보: Using a shared selector for servlet write/read

2011. 9. 24 오후 3:51:27 org.apache.coyote.http11.Http11NioProtocol init
정보: Initializing Coyote HTTP/1.1 on http-8080
2011. 9. 24 오후 3:51:27 org.apache.coyote.http11.Http11NioProtocol start
정보: Starting Coyote HTTP/1.1 on http-8080
Http11AprProtocol 가 Http11NioProtocol로 바뀌었고 NioSelectorPool을 사용하는 것이 새로 생겼다.

Comet을 구현하기 위해서는 CometProcessor 를 implments 하면 되는데
  1. public void event(CometEvent event) throws IOException, ServletException {
  2. }
형태의 메소드를 오버라이드 해야 한다. (이클립스에서는 형태를 자동으로 만들어준다.


참고사이트: http://namocom.tistory.com/112

댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기