我的applet使用RTMFP连接到FMS4.5。我打开一个NetConnection并使用NetStream将视频从服务器流式传输到applet。当我想在applet或服务器上执行一个函数时,我使用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()可靠性,这是不必要的?