Yes, if I interested in routing the message, some part must be available for all time message live cycle.
Some requests in my system is SOAP requests. It's look like
soap.createElement.addEventListener( SoapEvent.RESULT, resultHandler );
soap.createElement.addEventListener( SoapEvent.ERROR, errorHandler );
soap.createElement( rootID, typeID );
This part contained into core proxies. If module wants to get the query result, he send message:
ModuleJunctionMediator:
var message : MyMessage = new MyMessage( Places.SERVER, Operations.CREATE, Targets.ELEMENT, { rootID: 111, typeID: 222 } /*<----some untyped properties*/ );
junction.sendMessage( PipeNames.TO_CORE, message );
It's REST-like SQL-based message system
Now I confused how implement this:
"soap.createElement.addEventListener( SoapEvent.ERROR, errorHandler );"
I have two important chains:
-> [ async req. result ] -> [ core to module message ]
[ module to core message ]
-> [ async req. error ] -> [ core to module message ]
and some main task:
1. Detect "my message". Discuss in previous post "how track result"
2. Error messages it's look like "track result" but have some differences.
For my "answer message" I create message the same type:
CoreJunctionMediator:
var message : MyMessage = new MyMessage( Places.SERVER, Operations.CREATE, Targets.ELEMENT, { elementVO: elementVO } /*<----result of async req.*/ );
junction.sendMessage( PipeNames.TO_MODULE, message );
The first way, create new ErrorMessage class like:
var errorMessage : ErrorMessage = new ErrorMessage( Places.SERVER, Operations.CREATE, Targets.ELEMENT, "Error Message" );
Difficult for me, where the place to "truck implementation":
1. Create unique ID for all messages.
myMessage.UID,
errorMessage.UID and errorMessage.sourceMessageID = [ myMessage.UID ] <-- this message generate error. But this way cant use for track normal messages, because MyMessage haven't attribute recipientID;
And module must "memorize" each request.
2. Create not errorMessage.sourceMessageID, but errorMessage.sourceMessage
3. Create recepientID for MyMessage...
Actually I'm confused
Main q.
How create module-core-module communication with track source messages in answers and error messages for sync and async requests