0

これは、ゲームをプレイしている人のユーザー名を取得するために使用している Flash コードの簡略版です。

var req:URLLoader = new URLLoader();
req.addEventListener(Event.COMPLETE, onLoaded);
req.load(new URLRequest(baseURL + "php/account.php?getUsername"));
function onLoaded(e:Event):void {
    if(e.target.data == "Guest") {
        LoadingText.text = "Welcome, Guest!"
    }
    else {
    LoadingText.text = "Welcome, " + e.target.data + "!";
    }
}

php/account.php?getUsername は、PHP セッション変数からユーザー名を取得して出力するだけです。

Tamper Data for Firefox などを使用すると、Flash から送信されたリクエストを確認でき、必要に応じて編集することもできます。

このアプローチは、他のオンライン ゲームに比べて非常に遅く感じられます。他のゲームをリバース エンジニアリングして、このようなものをどのように管理しているかを確認しようとすると、一部のゲームでは、リクエストが改ざんデータに表示されません。

だから、フラッシュでリクエストを送信するための、より高速で効率的な代替方法はありますか? 投稿データの送信や紹介URLの編集などの凝った作業は必要ありません。

ありがとう。

4

1 に答える 1

0

ほとんどの場合、他のゲームはソケット接続を使用します。これが、改ざんデータにリクエストが表示されない理由であり、パフォーマンスが優れている理由です。

ソケット接続の場合、サーバーへの接続を一度開くと、必要な数のリクエストを作成できます。

HTTP では、リクエストごとに TCP 接続が開閉され、パフォーマンスに影響します。

ソケット接続を使用すると、HTTP プロトコルを完全に回避でき、HTTP よりもはるかに軽量なプロトコルを設計できます。実際、高性能が必要なときに HTTP を使用する人はいません。

ここでフラッシュソケットのドキュメントを参照してください:ソケット

PS

高いパフォーマンスを得るには、TCP の代わりに UDP を使用することをお勧めしますが、フラッシュ ソケットは TCP に限定されているため、これに注意する必要はありません。

于 2013-03-12T19:43:43.407 に答える