1

我的小程序使用 RTMFP 连接到 FMS4.5。我打开一个 NetConnection 并使用 NetStream 将视频从服务器流式传输到小程序。当我想在小程序或服务器上执行功能时,我使用 NetConnection.call();

我的问题是,AS3 是否在内部做任何事情来确保通过 UDP 进行调用,或者是否存在 UDP 丢失的风险,并且该函数在被调用时永远不会发生?

假设有时可能会丢失 UDP 流量,我让响应者重试 onStatus。这段代码看起来像是真的可以完成这项工作还是矫枉过正?

// This is code on FMS to call a function in the applet.

var networkRetryMax = 30;
if (something == true) doSomethingInApplet(client, 0);


function doSomethingInApplet (client, retryCount) {
    if (retryCount < networkRetryMax) {
        retryCount++;
        client.call("funcNameInApplet", new doSomethingInAppletResponder(client, retryCount), "foobar");
    }
    return;
}


function doSomethingInAppletResponder (client, retryCount) {
    this.onResult = function() {...}
    this.onStatus = function() {doSomethingInApplet(client, retryCount);}
    return;
}

和...

// This is code in the applet.
// I return true to give it something to onResult or onStatus.

public static function funcNameInApplet(result:String):Boolean {
    trace("Result: " + result);
    return true;
}

那么这会确保通过 UDP / RTMFP 调用该函数吗?

还是 .call() 可靠性在内部处理,这是不必要的?

4

0 回答 0