AMFJS is an AMF 3 Client JavaScript library
The library does enough AMF 0 to be able to send and receive packet headers.
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">
var amfClient = new amf.Client("amfphp", "http://127.0.0.1/server/gateway.php");
amfClient.invoke("test", "ping", [],
function(data) {
console.log(data);
},
function(data) {
console.log("ping errror");
}
);
</script>
</body>
</html>
This example loads amf.js, which makes the amf global object available.
var amfClient = amf.Client("amfphp", "http://127.0.0.1/server/gateway.php");
A new AMF Client instance is created, and initialized with the desired destination and endpoint.
amfClient.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.