我的小程序使用 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() 可靠性在内部处理,这是不必要的?