'WebService'에 해당되는 글 1건

  1. 2008.09.20 웹서비스나 리모팅 메서드 호출

서버와 클라이언트간 통신 방법 중에 웹서비스와 리모트 객체가 있다. 이들은 복잡한 데이터를 간단하게 전달하거나 클라이언트가 서버의 메서드를 쉽게 비동기 요청을 할 수 있도록 한다.

[ 웹서비스를 이용한 호출 ]
웹서비스 객체는 플렉스 컴포넌트인 WebService를 이용하여 객체의 메서드를 호출 할 수 있다. 모든 웹서비스는 WSDL(Web Service Description Language : 웹 서비스 기술 언어)을 가지고 있다.
WebService객체의 wsdl 속성을 사용하여 WebService객체에 WSDL의 경로를 설정한다.
WebService.wsdl = "WSDL을 명시한 서버사이드 스크립트 경로";

그리고 명시된 WSDL의 데이터를 loadWSDL()메서드를 통해 호출한다.
호출에 성공하면 LoadEvent이벤트의 "LOAD"가 발생하고 실패하면 FaultEvent이벤트의 "FAULT"
실행한다.

WebService객체에 위임된 변수는 이제 웹서비스의 메서드를 호출 할 수 있게 된다. 가령 서버의 WSDL에 평균값을 구하여 리턴하는 메서드가 있으면 아래와 같이 호출하면 된다.
WebService.getAverages();
그리고 서버에서 실행된 결과를 받기 위해서는 ResultEvent이벤트를 사용한다.
WebService.getAverages.addEventListener( ResultEvent.RESULT , onGetAverages );
onGetAverages() 함수에는 리턴된 값을 처리하는 명령문을 사용하면 된다.



[ 플래시 리모트객체를 이용한 호출 ]
리모트 객체는 NetConnection()를 사용하여 서비스의 메서드등의 정보등을 관리하는 서버사이드에 connect()를 하여 길을 연다.
NetConnection.connect( "AMF 플래시 리모팅 게이트 웨이 경로" )

연결된 NetConnection의 위임 객체는 서버의 메서드를 call() 메서드를 이용하여 호출하며 응답객체 Responder()를 만들어 호출시 등록한다. 

Responder( 결과함수 , 상태함수 )는 성공하여 결과를 리턴 할때나 에러,실패등의 상태를 실행할 함수를
설정한다.
var res:Responder = new Responder( onResult , onError );
NetConnection.call("호출할 메서드",  res);
마찬가지로 호출한 메서드에 대한 결과를 서버에서 받으면 처리함수(onResult )에서 처리하면 된다. 각 함수의 파라미터는 Object를 받는다.

Posted by 버터백통