S2Flex2Beta6リリース時に指摘された、AppendToGatewayURLについて少しだけ調べてみました。
NetConnectionでAMF3のサーバに接続すると、接続時にAppendToGatewayURLが呼ばれるようになります。
これは、Sessionを維持する為にサーバが返すAMFのレスポンスのAMFのヘッダに入っているようです。
このヘッダの情報をみてFlashPlayerがメソッドを呼び出そうとしていると推測します。
(あくまで推測です。m(__)m)
Flex2とAMFPHPの接続のエントリーでは、NetConnectionを拡張してこれらのメソッドを追加したNetConnectionクラスを利用して接続していました。
これまでS2flex2-componentsでは、NetConnectionをそのままで利用してもエラーが発生しなかった事からNetConnectionをそのまま使っていました。
AMF3の解析が進んで、S2Flex2本体に実装が進んでBeta6で初回接続時にエラーが発生するようになってしまいました。
AppendToGatewayURLについて調べてみると、身近なところに情報がありました。
過去にarkwさんにメールで指摘されていたことに気づいていなかった事です。
3月の終わりに今の実装に問題がでてくることと、コードを教えていただいていました。そのときは接続時にも問題が発生していなかったので理解できていませんでしたが、解析結果よりコードとして提供されていました。(゚o゚)
AppendToGatewayURLの引数は、sessionIdでした。
;sessionId=xxxxColdFusion/Flex Connectivityではきっとcftoken(だったような)が渡ってくるのではないでしょうか。
いまのところ、
- ReplaceGatewayURL
- addHeader
近いうちに問題になる気がしますが、そのときまで寝かしておきます。
ReplaceGatewayURLはrtmp?時に呼ばれるのでしょうか?
addHeaderはFlex1.5にあったようなカスタム認証やJ2EEの認証を利用するようなときなどに必要になるかもと思っています。
AppendToGatewayUrlについて
OSFlashによるAMFのEnvelopeについての解説
http://www.osflash.org/amf/envelopes/remoting/headers
Adobe Labsにある、Flex2とAMFPHPとの接続チュートリアル
この例でAppendToGatewayURLを実装するようにしています。
実際には何もしていません。
http://labs.adobe.com/wiki/index.php/Flex_Framework:tutorials:flex2_AMFPHP
Sessions with Flex and Flash
http://www.jessewarden.com/archives/2006/05/sessions_with_flex_flash.html
hello world en AMFPHP avec Flex2.0 - Tweenpix
このエントリーではAppendToGatewayURLはなにもしていません。
http://www.tweenpix.net/blog/index.php?2006/01/03/543-hello-world-en-amfphp-avec-flex20
この記事に対するコメント