首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

LCDS & BlazeDS 中 Channel 的配备选项

2012-10-26 
LCDS & BlazeDS 中 Channel 的配置选项配置文件中配置 Channel 的代码片段:channel-definition idmy-po

LCDS & BlazeDS 中 Channel 的配置选项

配置文件中配置 Channel 的代码片段:

<channel-definition id="my-polling-amf" name="code"><flex-client-outbound-queue-processor class="my.company.QoSQueueProcessor">    <properties>        <custom-property>5000</custom-property>    </properties></flex-client-outbound-queue-processor>
[serialization] 用于支持早期的Flex版本的串行类型。[connect-timeout-seconds] channel 配置可选项,用于限定客户端通道的尝试连接时间。[invalidate-session-on-disconnect] endpoint 配置可选项, 默认值为 disabled 。如果设为 enabled ,session 将会随着 channel 的断开而失效。如果客户端在没有断开 channel 的情况下关闭,session 保持有效直至超时。[add-no-cache-headers] endpoint 配置可选项, 默认值为 true 。 用于指定是否让服务器在响应中加入 pragma no-cache 的 http 头信息,进而阻止浏览器缓存内容

?关于一般轮询:

??? 使用一般轮询需要在配置文件中设置?[polling-enable] 和?[polling-interval-seconds] 选项,或者无视配置文件直接在 Flex 中对 Channel 设置 pollingEnabled 和?pollingInterval 属性。一般轮询模式下,服务器对客户端的请求立即作出反应:如果消息队列中存在请求的消息则返回该消息否则返回一个空结果。

?

?

关于长轮询:

??? 使用长轮询需要在一般轮询的配置基础上增加 [wait-interval-millis]?,[max-waiting-poll-requests] 和 [client-wait-interval-millis],其中最关键的是 [wait-interval-millis] 。在长轮询模式下,如果消息队列里不存在客户端要求的消息,那么服务器对于客户端的轮询并不立即作出响应,而是将该请求的响应挂起,进入等待状态。一旦该轮询请求的消息进入消息队列则处于等待状态的响应线程立即激活并传递消息给客户端。响应线程在等待状态下等待的最长时间由 [wait-interval-millis] 指定,endpoint 中可以同时存在多少个处于等待状态的响应线程由 [max-waiting-poll-requests] 指定,这个数量的设置需要充分考虑服务器对于的HTTP请求的最大负载。

?

?

BlazeDS的三种推模式:实时连接--能最敏捷的反映数据的变化,但客户端需要独占宝贵的连接资源,对服务器环境的要求最高;一般轮询--只能在特定周期上获取数据变化,请求完成后立即释放连接,比较节省服务器资源;长轮询--是前两者的折中方案,即不会长期占用连接,也能在一定程度上快速反映数据变化。选择哪种推模式需要在实际项目中根据具体需求做出选择。

热点排行