T2のAMF対応

T2でAMF3が扱えるように実装を行いました。
まだテスト・調整中ですが、基本的なやりとりはできるようになりました。


T2としては、出来れば依存ライブラリなしで通信を行いたいと思っていて、素晴らしいAMF3実装を持つS2Flex2から、シリアライズ/デシリアライズ部分のコードを移植させて頂きました。
また、Adobe謹製が好きな向きもいると思い、BlazeDSのAMF実装にも切り替えられるようにしました。
どちらの実装を使用しても、クライアント側からはRemoteObjectで接続できるようになっています。


AMF3はフォーマット仕様書がオープンになっていますが、やはり読んでも分からないことがあり、S2Flex2の実装が動く教科書でした。
ヘッダー部分の処理や、メッセージがAMF0の配列で入ってくるところなどは、仕様書ではわからないところでした。
また実装面では、Reader/Writerの配列のインデックスがAMFのtypeになっているところ、Amf3DataReaderImplを使ってAMF0からAMF3に切り替える部分は驚きでした。


T2がAMFを扱えるようになった事もそうですが、個人的にもとても勉強になりました。
id:arkwさん、nodさんをはじめとしたS2Flex2のコミッターの皆様に、深く深く感謝致します。




明日はSeasar Conferenceで、id:yone098id:skirnirが発表してくれます。
デモも用意しましたので、お時間ある方はぜひいらしてください。