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/
The library does enough AMF 0 to be able to send message headers, anything more would only add weight.
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.