|Published (Last):||5 June 2007|
|PDF File Size:||1.18 Mb|
|ePub File Size:||18.16 Mb|
|Price:||Free* [*Free Regsitration Required]|
Currently I'm propably simply going to use wireshark and the BlazeDS code to somehow reverse-engineer a Protocol description for me, but I don't know why not a single valid spec is availble. I think this RPC addition may be confusing you, as it is infrastructure that defines how individual payloads of AMF data are sent and received from a server. This wrapper does not come into play for basic ActionScript object serialization through ByteArray.
It is additional logic for NetConnection based communication to a server. ActionScript data actually sent for header values or message body values are encoded in AMF. All data values start out in AMF 0 for compatibility's sake. This may be another point that trips people up at first when looking at basic AMF serialization versus NetConnection based communication. Legacy clients that do not support AMF 3 would not understand this new marker and would stop processing the data.
This is mentioned in Section 3 of the AMF 0 specification. AMF0 RPC calls are composed of a version, list of headers, and list of messages, which roughly equate to methods to call. If you're using Flex RemoteObject, there are some additional wrapper objects that Flex uses in the messaging. The second type, which is what the Wikipedia article you found references, is the message format that RTMP uses, which is a combination of AMF and its own custom format.
As far as I know, there are no specs for this format. As someone who has built a library that can parse AMF and make RPC calls RocketAMF , I would advise that you use one of the existing libraries rather than write your own if you just need remoting support. Below is a list of some libraries for AMF parsing by language, with many more a simple search away.
You might also want to check out Charles , which is capable of deserializing AMF requests that are proxied through it, making reverse engineering a bit easier. Learn more. Asked 8 years, 6 months ago. Active 7 years, 9 months ago. Viewed 5k times. Christofer Dutz Christofer Dutz 2, 1 1 gold badge 19 19 silver badges 28 28 bronze badges. May I ask why are you writing your own adapter? Are you using some exotic language? I am trying to create an adapter that runs on J2ME I could have started migrating the incompatible parts of an existing stack, but I need only a small portion of the full blown stack and I wanted to keep the implementation as simple and small bytecode size as possible.
Active Oldest Votes. AMF at its core is just an ActionScript object serialization format. Pete Pete 46 2 2 bronze badges. Thanks for that explanation. As I posted some time ago, I finally seemed to have understood the format and even managed to create a parser to do the deserialization on a J2ME system Just a simple POC.
But you were right Sounds incredible. Well on the one side I simply wanted to understand the protocol. On the other side, I am sort of fedup with all those full blown solutions, that do a lot more than I need and have a lot of quirks that are a nightmare to debug.
Subscribe to RSS
The Actionscript 3 language provides classes for encoding and decoding from the AMF format. The format is often used in conjunction with Adobe's RTMP to establish connections and control commands for the delivery of streaming media. In this case, the AMF data is encapsulated in a chunk which has a header which defines things such as the message length and type whether it is a "ping", "command" or media data. It was unchanged until the release of Flash Player 9 and ActionScript 3.
Action Message Format
The spec of AMF 3 is published