Comet with Tomcat
기존에 사용하는 WAS를 Tomcat 으로 사용했기에 익숙한 톰캣으로 정했다.
자료가 별로 없어 'http://corund.net/blog/entry/자바-서블릿-컨테이너의-Comet-지원-2---Tomcat'를 참고 했다.
시간이 나면 Advanced IO and Tomcat 의 Comet support 부분도 읽어보면 도움이 될 것 같다.
High-performance Ajax with Tomcat Advanced I/O
Tomcat 6.0/conf/server.xml 수정
기존
- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
수정
- <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" redirectPort="8443" />
protocol: 커넥터들의 비교
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)를 확인해보았다.
다른 부분만 추려봤다.
기존
정보: 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
수정후
정보: 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 하면 되는데
- public void event(CometEvent event) throws IOException, ServletException {
- }
형태의 메소드를 오버라이드 해야 한다. (이클립스에서는 형태를 자동으로 만들어준다.
구현하는 것에 대해서는 아래의 목록을 참고하세요.
'Network' 카테고리의 다른 글
이젠 모바일이 대세 (0) | 2013.09.08 |
---|---|
Web Socket(웹소켓) (0) | 2012.09.21 |
푸시통지(Push Notification) (2) | 2012.09.21 |
ARP(Address Resolution Protocol) (0) | 2012.09.21 |
윈도우 - 네트워크 탐색 (0) | 2012.09.21 |