我正在使用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);
}
谢谢!
答案 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事件并获取您的消息。