Flex BlazeDS Message Service

转载 2013年12月03日 16:42:31
消息服务(Message Service )提供发布(publish)/订阅(subscribe)机制允许Flex 应用程序发布消息、订阅消息终端(messaging destination),从而实现实时数据的推和协作。 

  一、Message Service 

  Message Service 提供发布(publish)/订阅(subscribe)机制允许Flex 应用程序发布消息、订阅消息终端(messaging destination),从而实现数据的实时推动和协作传送。 

  消息终端在messaging-config.xml配置,其中频道(channel)是其关键元素,它用来实现客户端和服务器端交换数据。使用BlazeDS,消息终端通常用作streaming频道或者polling频道。 

  使用streaming频道,服务器端会一直响应HTTP请求直到该频道连接被关闭,它允许服务器向客户端不断传送大量的数据。因为HTTP连接是独一无二的,这实现数据的双向传送,每个streaming AMF或者HTTP频道事实上需要两个浏览器 HTTP连接, 一个连接需要不断处理服务器端与频道紧密相关的客户端的响应。另外需要一个短暂连接,只有当数据需要传送到服务器时,它才脱离浏览器连接池;当短暂连接不再需要时,它立即被释放回浏览器连接池。 

  polling频道可以通过简单的时间间隔或者使用服务器等待来配置,如果数据不马上可用 (长轮循)的话。另外,每次轮循响应完成请求。默认下浏览器HTTP 1.1的连接是持续的,浏览器轮循已有的连接,发送并发的轮循请求,以此来减轻轮循的开销。 

  当需要准实时通信时,streaming 频道是最好选择。 

  二、IE 与 Firefox浏览器下的不同 

  浏览器对每个session都有连接数限制。不同的浏览器,连接最大数以及对session的处理方式都不一样。 

  IE中每个session的最大连接数为2。 但如果从开始菜单或快捷方式打开多个IE实例,每个IE实例开启不同的进程并拥有各自session。另外,如果我们通过CTRL+N 开启对已有的IE实例一个新的IE窗口,该窗口将与创建它的IE实例共用一个session 。也就是说,如果程序实例开启不同的进程,我们可以通过HTTP streaming建立不限量应用取得服务器端数据;如果通过CTRL+N开启多个窗口,每个session最多建立2个连接。 

  Firefox中每个session最多建立8个连接。如果从开始菜单或快捷方式打开多个Firefox实例,所有实例开启使用同一进程并共用一个session。既然浏览器对普通的HTTP请求通常只需要一个连接, 理论上我们可以最多可以建立7个HTTP streaming连接。 

  三、messaging-config.xml 

  另外,如果每个session到达最大连接数,使用streaming channel连接到服务器的下一次尝试将失败:Endpoint with id 'my-streaming-amf' cannot grant streaming connection to FlexClient with id 'D640B86F-6B1D-92DF-8288-1B737A371AFE' because max-streaming-connections-per-session limit of '1' has been reached。不过,BlazeDS提供一种优雅的退后机制来处理这种情况:客户端始终会尝试使用频道表(messaging-config.xml中为服务终端定义)中的第一个频道来连接。如果该连接失败, 客户端将自动退后到频道表中的下一频道。在本实例中,我们为所有的服务终端定义了如下默认的ChannelSet: 

Java代码  收藏代码
  1. <default-channels>  
  2.   <channel ref="my-streaming-amf"/>  
  3.   <channel ref="my-polling-amf"/>  
  4. </default-channels>  


  也就是说,客户端应用会首先尝试使用streaming channel连接,如果连接失败会使用polling channel。

Flex通过Blazeds利用Remoteservice与后台java消息推送

Flex通过Blazeds利用Remoteservice与后台java消息推送 准备工作:Myeclipse中先建立一个Web project工程,然后导入Blazeds的文件,再转换为Flex...
  • skyboy11yk
  • skyboy11yk
  • 2013年12月03日 16:45
  • 2521

flex与java通信:blazeds配置文件

一、web.xml中对blazeds的配置 flex.messaging.HttpFlexSession 用于将HttpFlexSession类作为监听器注册到web.xml中,这样系统就...
  • huangjing_whlg
  • huangjing_whlg
  • 2013年12月31日 17:53
  • 1576

Flex3与java BlazeDS入门教程及其配置详解

Flex3与java BlazeDS入门教程及其配置详解 源代码下载地址:http://www.zuidaima.com/share/1789445387160576.htm...
  • yaerfeng
  • yaerfeng
  • 2016年05月11日 09:21
  • 4198

细细品味Flex——BlazeDS开发指南

细细品味Flex——BlazeDS开发指南  1、BlazeDS简介 1.1 引言   通过使用HTTPService、WebService、URLLoader及FileReference等组...
  • skyboy11yk
  • skyboy11yk
  • 2013年12月02日 23:01
  • 969

Flex入门(二)——Flex+BlazeDs+J2ee小实例

首先来简单介绍一下BlazeDS。 BlaseDS的核心功能包括RPC Services(远程过程调用服务) 和Messaging Service(消息服务)。BlazeDS是一个基于服务器的Java...
  • liujiahan629629
  • liujiahan629629
  • 2014年07月30日 19:04
  • 3441

实现Flex与Java的通信的Demo(BlazeDS方式)

应需求,研究了一下Flex如何与Java后台进行通信。先把HelloWorld的程序写在这里吧: 首先要想说的是网络上传播着3种flex与java的整合方法:     第一种是java项目...
  • angus_17
  • angus_17
  • 2012年11月13日 10:14
  • 3424

FLEX 与JAVA的LCDS BLAZEDS配置.

FLEX 与JAVA的LCDS BLAZEDS配置.1.构架原理Flash Remoting的原理类似于Resin的Hessian,都是使用基于HTTP协议的轻量级二进制协议,即AMF。 Flash...
  • attilax
  • attilax
  • 2011年03月01日 12:31
  • 4115

springMVC与flex 整合

由于最近新做的项目里有用到flex做图形展示,而
  • xiaohua914
  • xiaohua914
  • 2014年07月08日 17:34
  • 2100

基于restful注解(spring4.0.2整合flex+blazeds+spring-mvc)

本文转自:http://www.blogjava.net/liuguly/archive/2014/03/10/410824.html 参考官网: 1.http://livedocs.adobe....
  • hhr373317
  • hhr373317
  • 2015年03月10日 16:57
  • 803

BlazeDS入门——Message Service

原文:http://www.riafan.com/blazeds-message-service/
  • riafan
  • riafan
  • 2008年03月29日 22:46
  • 469
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Flex BlazeDS Message Service
举报原因:
原因补充:

(最多只允许输入30个字)