What is IMessage?
In the previous section (Your first controller) you could see that the
OnMessage method had a parameter of type
The signature of
IMessage looks like this
It makes cross-protocol communication possible
One of the responsibilities of a protocol module is to convert each incoming frame to a
IMessage. Since all incoming data is transformed into the common
IMessage format we can have the same logic for all clients regardless of protocol.
It tells XSockets what controller and method to invoke
Controller as properties the framework can route each message to the correct
Controller and method (where method name is matched against the topic).
The value in the
Data will then be serialized into the parameter(s) of the method.
Enables model binding
Since XSockets reflects all modules and methods at startup the
Data part of an
IMessage can be serialized into the types that your method expects. When you do not know (or do not care) about the parameter type you can use
IMessage as the type instead.