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

时间:2011-06-05 15:27:10

标签: flash upload bandwidth detect

我正在尝试让“bwcheck”应用程序在Amazon EC2上运行FMS 4,以便检测我到服务器的上传速度,并为我的上传速度提供最优质的流。

我遵循的教程是:

http://www.derekentringer.com/blog/flash-media-server-streaming-speed- testing-part-2-detect-upload-download-and-latency-speeds-and-port-conn ection /

http://web.archive.org/web/20080308081519/http://www.peldi.com/blog/ar chives / 2004/01 / automated_c.html

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

找不到方法(recData)

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

for(i = 0; i< 1000; i ++){      data + =“S-> C”; }

Client.prototype.recData = function(data) {      this.ping();      var v = this.getStats();      this.call(“ack”,0,v.ping_rtt); }

Client.prototype.echoData = function() {      this.call(“onEcho”,0,data); };

Client.prototype.getBWInfo = function() {      return this.getStats(); };

Client.prototype.onConnTimeout = function() {      clearInterval(this.connTimeout);      this.connTimeout = null;      application.disconnect(本); }

application.onConnect = function(client,id) {      trace(“connect:”);      //建立连接       application.acceptConnection(客户端); }

2 个答案:

答案 0 :(得分:0)

您确定所有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);
} 

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

答案 1 :(得分:0)

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

把:

var data =''

在其他事情之前。