AMFJS is an AMF 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");
var p = amfClient.invoke("test", "ping", []);
p.then(
function(res) {
console.log(res.data);
},
function(err) {
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.
var p = amfClient.invoke("test", "ping", []);
p.then(
function(res) {
console.log(res.data);
},
function(err) {
console.log("ping errror");
}
);
Sends and AMF request to the test service, invoking the ping method with no parameters. The invoke method returns a Promise, which is used to handle the response or error.
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.