以下是我用来获取玩游戏的用户名的一些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中发送更快更有效的请求?我不需要任何花哨的东西,例如发送帖子数据或编辑推荐网址。
感谢。
答案 0 :(得分:0)
其他游戏很可能使用套接字连接。这就是为什么你没有在篡改数据中看到请求以及为什么它们有更好的性能的原因。
如果是套接字连接,则打开与服务器的连接一次,您可以根据需要发出任意数量的请求。
使用HTTP,为每个请求打开和关闭TCP连接,这会影响性能。
使用套接字连接可以完全避免使用HTTP协议,您可以将协议设计得比HTTP轻得多。实际上,当您需要高性能时,没有人使用HTTP。
请参阅此处的Flash套接字文档:Socket
P.S。
为了获得高性能,最好使用UDP而不是TCP,但闪存套接字仅限于TCP,因此您无需处理此问题。