2010-11-30 6 views
2

나는 Flex에서 메시지를 보내기 위해 BlazeDS를 사용하고 있습니다. 내가 오류를 발생시키는 어떤 메시지를 식별 할 수있어 어떻게 faultHandler 내부 궁금MessageFaultEvent를 트리거하는 원본 메시지를 식별하는 방법

<mx:Producer id="producer" 
    destination="chat" 
    fault="faultHandler(event);"/> 

: UI 컴포넌트 안에서, 나는 아래와 같은 프로듀서를 정의했다. 원래 메시지를 참조 할 수있는 방법은 없습니다.

이것은 메시지가 작성되고 전송되는 코드 스 니펫입니다.

 private function sendMessage():void { 
      var message:AsyncMessage = new AsyncMessage(); 
      message.body = userName.text + ": " + input.text; 
      producer.send(message); 
     } 

고마워요!

답변

0

생산자 객체가 메시지 객체의 참조를 보유하고있는 것처럼 보이지 않습니다. 생성자 클래스를 확장하고 fault 함수를 재정의하고 메시지가 포함 된 사용자 정의 이벤트를 전달하면이 작업을 추가 할 수 있습니다.

일부는 sudo 코드 :

public class MyProducer extends Producer 
{ 

    public function MyProducer(){ 
     super() 
    } 


    override public function fault(errMsg:ErrorMessage, msg:IMessage):void 
    { 
     var evt:MyMessageEvent = new MyMessageEvent(msg) 
     dispatch(evt); 
     super(errMsg, msg); 
    } 

} 

그런 다음 당신이 할 필요가 MyMessageEvent 이벤트를 수신하고 메시지를받을 수 있습니다.

+0

고마워요! 나는 그것을 시도 할 것이다! – Jingwei

+0

감사합니다. 작동 중입니다! – Jingwei

관련 문제