About RJAX

RJAX (Reverse aJAX) is a solution for pushing web server data to a browser without having any need for the client to request it.

The aim is to avoid having the browser continuously polling data from the server. This is what you would do if you were using standard AJAX techniques.

The solution maintains an open connection between the browser and the server using a dedicated applet in the client page. This allows the server to execute javascript commands directly on the client.

A possible downside of such a solution is that some firewalls are typically configured to drop connections that have been open for too long. RJAX will address this issue by implementing a mechanism for dropping and recreating connections on a (configurable) regular basis.

The project consists in two pieces of code: The RJAX client applet and the RJAX server that can be embedded in a Java web application (war file).

The RJAX server is started when the web application gets deployed and stopped when the web application gets undeployed. The server listens to a port different from the web server. A client is identified by a unique ID (Typicaly its J2EE session ID). To send a Javascript command to a client, using the RJAX server, you just need to know its ID.

The RJAX client applet is hidden in the page. It maintains the connection with the server and signals the server when the applet is loaded or unloaded. Its role is to execute javascript commands received from the server. To do so, it relies on the use of netscape.javascript.JSObject which works with most javascript enabled browser (Netscape, Firefox, IE,...).

RJAX is an open source SourceForge project available at: http://sourceforge.net/projects/rjax

Thank you for using RJAX.
Please send me your feedbacks with your suggestions at: feedbacks@rjax.net