I didn't say HTTP is asynchronous, although strictly it is,
based on the original and true definition of asynchronous communication.
And asynchronous I/O refers to non-blocking input/output processing,
and that is exactly what the RTI driver must support.
The driver can't block and needs to process other events from the RTI processor and from multiple device GUIs,
while asynchronously waiting for the responses from MCWS.
This is independent of whether HTTP itself is synchronous or asynchronous;
the driver should be transporttype-agnostic.
The objects and the underlying RTI driver runtime are supporting asynchronous programming style.
WebGizmo is also receiving the responses asynchronously from MCWS, BTW.
But the whole point of this thread,
is to suggest improvements in MCWS so that there is a reliable, consistent and simple way to identify and parse the MCWS responses.
It is good programming practice and design to provide and return distinct response types.
Having the function name in the response is just a simple suggestion,
and helps for parsing the response, you have to agree on that?
Handling different parameters for the same functions giving different information in the response,
is another similar problem with MCWS, IMHO.
MCWS should give enough information in the response
so that it is unambiguous and the context is given.
JRiver should also think ahead if they are going to provide an MCWS similar API
with push responses/notifications.
Then obviously you can't have two different events returning the exact same notification contents.