/amfjs

A JavaScript AMF 3 Client library

Primary LanguageJavaScriptApache License 2.0Apache-2.0

amfjs

AMFJS is an AMF 3 Client JavaScript library

It is based on Surrey's R-AMF (AMF 99) implementation https://code.google.com/p/r-amf/

Why no AMF 0

The library does enough AMF 0 to be able to send message headers, anything more would only add weight.

Basic Example

Here is a AMFJS Ping Pong example:

<!doctype html>
<html>
<head>
	<title>AMFJS</title>
	<script src="amf.js" type="text/javascript"></script>
</head>
<body>
	<script type="text/javascript">
		amf.init("amfphp", "http://127.0.0.1/server/gateway.php");
        amf.invoke("test", "ping", [],
            function(data) {
                console.log(data);
            },
            function(data) {
                console.log("ping errror");
            }
        );
	</script>
</body>
</html>

This example loads an amf.js, which makes the amf global object available.

amf.init("amfphp", "http://127.0.0.1/server/gateway.php");

amf.init sets the destination and endpoint of the AMF Client.

amf.invoke("test", "ping", [],
    function(data) {
        console.log(data);
    },
    function(data) {
        console.log("ping errror");
    }
);

Sends and AMF request to the test service, invoking the ping method with no parameters. onResult and onStatus callback functions are also passed to the the invoke method.

The PHP service is very simple and looks like this.

<?php
class test
{
    public function ping()
	{
		return 'pong';
	}
}
?>

If the AMF Client has not been assigned a clientId by the server, a flex.messaging.messages.CommandMessage with a CLIENT_PING_OPERATION will be sent to the server first, in order to test connectivity over the current channel to the remote endpoint, and get a clientId assigned.

Framework Integration

  1. EnyoJs plugin