WEB/JSP2014. 2. 10. 11:23

수정일자:2014/02/10


정의 및 사용범위 


서버 PUSH용으로 사용가능하나 성능이 저하될수 있음을 유의해야함

Polling , Long Polling ,Streaming 의 서버 폴링 방법이 있으며

보통 Long Polling, Strreaming 을 Comet이라한다

Reverse Ajax, Ajax Push, Two-Way-Web, HTTP server PUSH

로 불리기도 한다.

Tomcat,Jetty,Resin 에서의 사용방법은 조금씩 다르며 

여기에서는 Tomcat 사용방법에 대해서만 알아봄


설치 및 테스트 환경


Eclipse 에서 Dynamic Web Project

Tomcat 7 서버 구동


설정사항


Tomcat Server의 server.xml 설정


<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.HttpNioProtocol" redirectPort="8443" useComet="true" />



사용방법 ※개념적인 형태만 구현 테스트 되지 않은 코드 


 CometProcessor 구현


public class CometServlet extends HttpServlet implements CometProcessor {

public void init(){}

public void destory(){}

public void event(CometEvent event){

HttpServletRequest request = event.getHttpServletRequest();

HttpServletResponse response = event.getHttpServletResponse();


if(event.getType() == CometEvent.EventType.BEGIN){

System.out.println("Begin Comet!");

}else if(event.getType() == CometEvent.EventType.ERROR){

event.close();

}else if(event.getType() == CometEvent.EventType.END){

event.close();

}else if(event.getType() == CometEvent.EventType.READ){

event.close();

}

}

}



Javascript Ajax 구현 jquery-1.10.2.js


<script type="text/javascript" src="/js/jquery-1.10.2.js"></script>

<script type="text/javascript">

function callComet(){

$.ajax({ type:"POST",

url:CometServlet,

data:param,

dataType:"xml",

success:callBack

error:function(xhr,status,error){
    alert("error");

},

complete:function(xhr,status,error){

}

});

}

function callBack(xml){

var data = $(xml).find("data").text();

alert(data);

setTimeout(function(){callComet();},10000};    //loop

}


$(document).ready(function(){

callComet();

});

</javascript>




참고 링크

comet 예제1 http://corund.net/blog/entry/Comet%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC

comet 예제2 http://tomcat.apache.org/tomcat-7.0-doc/aio.html

comet 예제3 https://www.ibm.com/developerworks/library/wa-cometjava/

'WEB > JSP' 카테고리의 다른 글

[JSP] request 용 패스 범위  (0) 2019.01.02
[JSP] JDBC 커넥션풀 설정/사용 방법  (0) 2014.02.07
Posted by idwook