Flash 如何检测到闪存媒体服务器的上传带宽

Flash 如何检测到闪存媒体服务器的上传带宽,flash,upload,bandwidth,detect,Flash,Upload,Bandwidth,Detect,我试图让“bwcheck”应用程序在Amazon EC2上的FMS 4上工作,以便检测我到服务器的上传速度,并为我的上传速度提供最佳质量的流 我遵循的教程如下所示: 测试-第2部分-检测-上传-下载和延迟-速度和端口连接/ 或 chives/2004/01/c.html 两者几乎完全相同。但是,当我将.fla编译为.swf(更改了服务器和应用程序的URL)并加载服务器端代码后,我在服务器端日志中出现以下错误: 找不到方法(recData) 我知道它显然找不到方法,但我尝试在全局范围内将其从函数中

我试图让“bwcheck”应用程序在Amazon EC2上的FMS 4上工作,以便检测我到服务器的上传速度,并为我的上传速度提供最佳质量的流

我遵循的教程如下所示:

测试-第2部分-检测-上传-下载和延迟-速度和端口连接/

chives/2004/01/c.html

两者几乎完全相同。但是,当我将.fla编译为.swf(更改了服务器和应用程序的URL)并加载服务器端代码后,我在服务器端日志中出现以下错误:

找不到方法(recData)

我知道它显然找不到方法,但我尝试在全局范围内将其从函数中删除,尝试将其附加到客户端,等等,但没有任何效果。服务器端脚本的原始代码是:

对于(i=0;i<1000;i++){ 数据+=“S->C”; }

Client.prototype.recData=函数(数据) { 这个。ping(); var v=this.getStats(); 此呼叫(“确认”,0,v.ping_rtt); }

Client.prototype.echoData=函数() { 调用(“onEcho”,0,数据); };

Client.prototype.getBWInfo=函数() { 返回这个.getStats(); };

Client.prototype.onConnTimeout=函数() { clearInterval(this.connTimeout); this.conntTimeout=null; 应用程序。断开(此); }

application.onConnect=函数(客户端,id) { 跟踪(“连接:”); //建立连接 应用程序。接受连接(客户端);
}

您确定所有Client.prototype方法都位于其自身的函数中,即:

application.onAppStart = function (info){

    ////////// start bandwidth check methods ////////////////
    for ( i = 0; i < 500; i++ ) {
    data += "S->C";
}

Client.prototype.recData = function(data) 
{
    this.ping();
    var v = this.getStats();
    this.call("ack", 0, v.ping_rtt);
}
...etc
    ////////// end bandwidth check methods ////////////////
}

application.onConnect = function(client_obj, id) {
    application.acceptConnection(client_obj);
} 
application.onAppStart=函数(信息){
//////////启动带宽检查方法////////////////
对于(i=0;i<500;i++){
数据+=“S->C”;
}
Client.prototype.recData=函数(数据)
{
这个。ping();
var v=this.getStats();
此呼叫(“确认”,0,v.ping_rtt);
}
等
//////////端带宽检查方法////////////////
}
application.onConnect=函数(客户端对象,id){
应用程序。接受连接(客户端_obj);
} 

该应用程序是否也适用于本地版本的FMS?

我用相同的代码块解决了这个问题。它在日志中--数据未定义

付诸表决:

var数据=“”


最重要的是。

使用4.0.2版的新EC2公共AMI,它刚刚开始工作。我无法解释,因为我以前使用的是完全相同的代码。