【问题标题】:Sending requests from Flash从 Flash 发送请求
【发布时间】:2013-03-12 19:02:44
【问题描述】:

这是我用来获取游戏玩家用户名的一些 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 发送的请求,甚至可以根据需要对其进行编辑。

与其他在线游戏相比,这种方法感觉非常缓慢,并且在尝试对其他游戏进行逆向工程以查看它们如何管理此类事情时,对于某些游戏,请求不会显示在 Tamper Data 中。

所以我想知道,有没有其他更快、更高效的 Flash 请求方法?我不需要任何花哨的东西,例如发送帖子数据或编辑推荐 URL。

谢谢。

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    很可能其他游戏使用套接字连接。这就是为什么您在 Tamper Data 中看不到请求以及它们具有更好性能的原因。

    在套接字连接的情况下,您打开与服务器的连接一次,您可以发出任意数量的请求。

    使用 HTTP,TCP 连接会为每个请求打开和关闭,这会影响性能。

    使用套接字连接可以完全避免 HTTP 协议,您可以设计比 HTTP 更轻量的协议。事实上,当您需要高性能时,没有人会使用 HTTP。

    在此处查看闪存套接字文档:Socket

    附:

    为了获得高性能,最好使用 UDP 而不是 TCP,但闪存套接字仅限于 TCP,因此您无需处理此问题。

    【讨论】:

    • 非常感谢您的回答。我将研究使用套接字并告诉你它是怎么回事。
    猜你喜欢
    • 2011-10-07
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多