現在、大規模なプロジェクトをFlex3からFlex4.5に移行しています。私が立ち往生している問題はネットワーク通信です。AMF3に埋め込んだカスタムプロトコルを使用していますが、flash.net.NetConnectionによって送信されたメッセージを読み取ることができないようです。
JavaバックエンドはいくつかのBlazeDSクラスを使用してメッセージを逆シリアル化します。つまり、flex.messaging.io.amf.AmfMessageDeserializer.AmfMessageDeserializerであり、AMF3をデコードするCharlesWebProxyを使用してネットワークトラフィックを監視できます。以下の非常に単純なコードは、Flex 3.5でコンパイルするとCharlesがデコードできるが、Flex 4.5ではデコードできないメッセージを送信します(「データの解析に失敗しました(com.xk72.amf.AMFException:サポートされていないAMF3パケットタイプ17 at26」) )。
import mx.controls.Alert;
private function init():void
{
var pdl : Dictionary = new Dictionary();
var connection : NetConnection = new NetConnection();
connection.connect("http://localhost");
var responder : Responder = new Responder(result);
connection.call("net", responder, pdl);
}
private function result(pdl : Object) : void {
Alert.show("coucou", "hello");
}
これをテストするために、localhost:80にApacheサーバーをセットアップしました。
Flex 4.5でNetConnectionを使用していて、逆シリアル化の問題が発生した人はいますか?どのようにそれらを解決しましたか?
ありがとう、
ダニエル