我正在使用Flex应用程序测试一个拥有大量客户端的系统。我看到一些意外的行为,看起来像eventListeners或bindSetters“停止监听”。
我似乎无法找到有关这些系统可靠性的在线文档。你们中有没有人有过这方面的经验吗?
让我举一个我能解决的例子:
要求:客户端需要每隔十秒向服务器发送一次命令
实施1 :计时器和eventListener
keepAliveTimer = new Timer(10000, 0);
keepAliveTimer.addEventListener(TimerEvent.TIMER, registerClient);
keepAliveTimer.start();
发现问题:有时一个或多个客户端在随机时间后停止发送该命令
实施2 :用enterFrame替换计时器
enterFrame="registerClient();"
问题似乎已经解决了......
这样的事情让我怀疑eventListener模型......
有关此事的任何经验吗?有用的信息?
非常感谢, 弗兰克
答案 0 :(得分:2)
您可以尝试注册并删除侦听器
public var keepAliveTimer:Timer;
private function initVerifyClient():void
{
keepAliveTimer = new Timer(10000, 0);
keepAliveTimer.addEventListener(TimerEvent.TIMER, registerClient);
keepAliveTimer.start();
}
private function registerClient(e:TimerEvent):void
{
keepAliveTimer.removeEventListener(TimerEvent.TIMER, registerClient);
//YOUR SERVER VALIDATION CLIENT HERE
keepAliveTimer.addEventListener(TimerEvent.TIMER, registerClient);
}