我的任务是为HTML5 WebSocket服务器创建一个AS3客户端。ASyncToken有什么意义?
我最初的想法是使用AS3中的一些现有类创建这个服务,即试图模拟RemoteObject,但看了看它,我无法真正看到ASyncToken的重点!
我知道令牌被用作服务器调用和它的响应之间的某种形式的引用,但我无法看到它成为唯一标识符的位置/方式。
就拿这一小段代码:
var token:AsyncToken = myService.myCall(params);
news.addResponder(new Responder(onResult, onFault));
function onResult(event:ResultEvent) {
// do stuff
}
function onFault(event:FaultEvent) {
// do stuff
}
显然令牌有自己的应答,并且该服务可以保持令牌的消息的字典,但如果我是叫myService.myCall两次,在做出任何回应之前,服务是否知道哪个令牌与响应关联?服务是否会创建一个唯一的标识符将响应与令牌关联起来,还是会在这种情况下失败?
如果它确实在内部存储了自己的唯一标识符,那么它将如何完全跳过令牌并将响应者传递给调用参数?例如。
myResponder = new Responder(onResult, onFault);
myService.myCall(myIResponder, <additional params>);
function onResult(event:ResultEvent) {
// do stuff
}
function onFault(event:FaultEvent) {
// do stuff
}
只看了一下我自己的示例代码,可以看到令牌没有存储在服务中,所以令牌是对调用的引用而不是其他方式。尽管如此,我仍然没有看到它在两个调用相同方法的区别之处。 – adamk 2011-01-11 22:02:49
Docs提到了这个问题:“这个类提供了一个设置异步RPC操作的额外或令牌级数据的地方,它还允许IResponder成为附加在一个单独的调用中,AsyncToken可以在token属性的ResultEvent和FaultEvent中引用。“ – Heikki 2011-01-11 22:36:32