如何识别触发MessageFaultEvent的原始消息

时间:2010-11-30 13:30:38

标签: flex blazeds

我正在使用BlazeDS在Flex中发送消息。在UI组件中,我定义了一个类似下面的生产者:

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

我想知道在faultHandler里面我怎么能识别出什么消息导致错误。因为似乎没有办法获得对原始信息的引用。

这是构建和发送邮件的代码片段。

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

谢谢!

1 个答案:

答案 0 :(得分: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事件并获取您的消息。