byt*_*ire 5 c# wcf basichttpbinding long-polling
客户端启动长轮询,在服务器上调用一个方法,并传入一个AsyncCallback
包含回调委托的实例,当服务器异步返回客户端时将调用该委托.
现在我对此的理解是有限的,但似乎在BasicHttp
WCF中AsyncCallback
参数被序列化并发送到服务器,然后服务器对其进行反序列化,缓存它并最终调用它以"返回"到客户端.
首先,上述解释是否正确?其次,如何AsyncCallback
通过网络在客户端上调用?
连接保持打开状态,以便服务器响应现有连接,包括响应中的回调处理程序名称.
客户端了解消息的格式,然后可以使用服务器响应中的数据调用适当的本地方法(基于回调处理程序).
我通常不想引用维基百科,但在这种情况下,这对长期民意调查来说并不是一个糟糕的解释 ......
长轮询是传统轮询技术的变体,允许模拟从服务器到客户端的信息推送.通过长轮询,客户端以与普通轮询类似的方式从服务器请求信息.但是,如果服务器没有可用于客户端的任何信息,而不是发送空响应,则服务器保留请求并等待一些信息可用.一旦信息可用(或在适当的超时之后),就会向客户端发送完整的响应.然后,客户端通常会立即从服务器重新请求信息,这样服务器几乎总会有一个可用的等待请求,它可以用来传递数据以响应事件.在web/AJAX上下文中,长轮询也称为Comet编程.
AsyncCallback
在服务器上调用方法时会发生这种情况)这类似于JSONP的工作方式(回调部分,不长轮询),如果您熟悉它?实质上,Callback句柄只传递给服务器,以便可以与响应一起发回,并允许客户端调用正确的方法.
引擎盖下还有其他检查,以确保只调用预期的方法,恶意服务器不能只执行它在客户端代码中选择的任何方法.
归档时间: |
|
查看次数: |
1810 次 |
最近记录: |