フラッシュ フロントエンド用の AMF サービス メソッドを実装しています。通常は問題なく動作しますが、2 つのメソッドが次々に呼び出されると、メソッドが実際には PHP 側で正常に完了しているにもかかわらず、2 番目の呼び出しがフラッシュ フロントエンドに null を返すことがわかりました (これを確認するために、返す直前に、返されたデータをファイルにダンプします)。
誰かが以前にこの行動をとったことがありますか?ZendAMFの設定ですか?
フラッシュ フロントエンド用の AMF サービス メソッドを実装しています。通常は問題なく動作しますが、2 つのメソッドが次々に呼び出されると、メソッドが実際には PHP 側で正常に完了しているにもかかわらず、2 番目の呼び出しがフラッシュ フロントエンドに null を返すことがわかりました (これを確認するために、返す直前に、返されたデータをファイルにダンプします)。
誰かが以前にこの行動をとったことがありますか?ZendAMFの設定ですか?
2番目のメソッドを呼び出す前に、最初のメソッドが終了したことを確認するのを待ってください。
私も ZendAMF を使っています。1 つの呼び出しが失敗すると、他のバッチ呼び出しの失敗メッセージがトリガーされることに気付きました (これを回避するために非同期トークンを使用できます)。
各呼び出しを一度に 1 つずつ送信し、失敗している呼び出しがある場合はどれが失敗しているかを調べます。個人的には、Charles というソフトウェアと、実行した AMF 呼び出しの内容とエラー メッセージを表示できる HTTPProxy を使用しています。また、Wireshark を使用することもできます。どちらの方法でも、送信された正確なリクエストと、バックエンドによってスローされたエラー メッセージを確認できます。
コードで何らかのトランザクション ( Doctrine など) を使用していますか? コードはテストに合格して正しく書き出されることがありますが、トランザクションが閉じられるとチョークし、エラーがスローされることがあります。
実際には、フラッシュ側が 2 つの関数呼び出しに同じ接続を使用していたことが判明しました。通話ごとに個別に接続することで問題が解決しました。