The library supports two types of integration: Remote Procedure Calls (RPC) and Real-Time Messaging over RTMP. The RPC integration provides an infrastructure for execution of remote method invocations of Java, .NET and PHP services. The real-time messaging integration also enables client-to-server invocations, but also supports server data push (data broadcast) remote shared objects.
The library supports client-server RPC with a variety of server technologies. The client-side method invocation APIs evolve around the concept of a service. A service can be a plain Java object, EJB, Spring bean, .NET object, WCF service, Spring.NET bean, PHP class or SOAP web service. The library implements a highly optimized, binary data exchange protocol called AMF. RPC messages encoded into the protocol format and sent in the payload of HTTP requests. The library supports remote method invocations with argument values of different types, including primitive data types, Strings, Dates, user-defined classes and collections of all of the mentioned types as arrays or dictionaries. Because the transmitted data is encoded in a binary format over HTTP, the invoked services must be exposed by a server capable of deserializing/serializing protocol messages and a web server responsible for processing the HTTP requests. The diagram below illustrates the data flow:
The real-time messaging type of integration is facilitated by a dedicated connection between the client application and the server. The connection is used by both the library and the server to exchange data and handle client-to-server and server-to-client method invocations. The data exchanged between the client and the server is encoded using the RTMP protocol, as a result the server must be capable of accepting RTMP connections. There are multiple implementations of the RTMP servers available on the market. See the Supported Servers section for additional information.
The diagram below provides a visual overview of how the library fits into the client application and communicates with an RTMP server:
In addition to the The real-time messaging type of integration, the library supports RTMP over a secure SSL connection using HTTPS (RTMPS).