http://bhsc-happy.iteye.com/blog/320209
选择端点
BlazeDS提供了下列基于servlet的通道、端点组合。使用安全协议 HTTPS 向 AMF 端点发送消息安全的通道和端点都以“Secure”开头;比如,SecureAMFChannel和SecureAMFEndpoint
|
描述
|
AMFChannel/AMFEndpoint
|
一对简单的通道/端点组合,基于HTTP协议,以异步请求、响应的模式通过二进制AMF格式传输数据。也可以配置一个通道,专门通过这个端点来轮询新消息。你可以为轮询配置一个较长的等待间隔,实现类似实时通讯。
|
HTTPChannel/HTTPEndpoint
|
提供同样的通道/端点行为,但是是通过XML代替AMF传输数据,称为AMFX格式化。它的速度没有AMFEndpoint快。
|
StreamingAMFChannel/StreamingAMFEndpoint
|
基于HTTP协议实时传递二进制格式数据流。在实时数据服务,例如消息服务的时候使用,因为数据流对性能来说是决定性的。
|
StreamingHTTPChannel/StreamingHTTPEndpoint
|
和streaming AMF 通道/端点提供同样的行为,但是是用XML代替AMF实现数据传输。它没有streaming AMF快。
|
AMF和HTTP通道都支持无轮询的请求/响应模式和客户端轮询模式(模拟实时通信),而AMF和HTTP流通道模式提供了真正的数据流实时模式
选择通道
基于你的应用需求,你可以选择简单AMF、HTTP通道以及基于非轮询、搭载式、轮询或者长轮询模式。当然你也可以选择streaming AMF、HTTP通道。
AMF和HTTP通道的最大不同就是前者基于二进制的AMF格式传输数据,而后者则是XML格式(AMFX)。因为AMF通道比HTTP通道性能要好,所以只有当你的应用有特殊需求的时候才适合使用HTTP通道(事先已经知道二进制格式不能在你的应用网络中传输或者想让数据在防火墙上更好理解)。
下面分别讲一下前面提到的几种模式:
1) 无轮询AMF、HTTP通道
你可以使用这些通道无轮询的方式来提供RPC 服务,比如远程服务调用、代理HTTP服务调用以及Web service请求。这些方案不要求客户端轮询信息或者服务端将消息“推”给客户端。
<!-- Simple AMF -->
<channel-definition id="samples-amf"
type="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:8400/myapp/messagebroker/amf"
type="flex.messaging.endpoints.AmfEndpoint"/>
</channel-definition>
<!-- Simple secure AMF -->
<channel-definition id="my-secure-amf"
class="mx.messaging.channels.SecureAMFChannel">
<endpoint url="https://{server.name}:9100/dev/messagebroker/
amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
</channel-definition>
<!-- Simple HTTP -->
<channel-definition id="my-http"
class="mx.messaging.channels.HTTPChannel">
<endpoint url="http://{server.name}:8400/dev/messagebroker/http"
class="flex.messaging.endpoints.HTTPEndpoint"/>
</channel-definition>
<!-- Simple secure HTTP -->
<channel-definition id="my-secure-http" class="mx.messaging.channels.SecureHTTPChannel">
<endpoint url=
"https://{server.name}:9100/dev/messagebroker/
httpsecure"
class="flex.messaging.endpoints.SecureHTTPEndpoint"/>
</channel-definition>
2) 搭载式AMF、HTTP通道
搭载式确保独立于客户端发送信息到服务端或者服务端响应消息到客户端的数据传输。搭载式提供了轻量级的假轮询:一种比固定或者适当时间间隔轮询服务端更好的方式,s特别是当客户端发送一个非命令消息到服务器(使用一个生产者或RemoteObject对象)时,服务器发送任何未确定的数据到客户端或数据管理订阅随着客户端的信息响应。
也可以在一个需要确保轮询,但是间隔却比较长,例如5秒或者10秒甚至更多的通道中使用,在这种情况下,应用程序似乎更加敏感。这种模式下,客户端的轮询请求独立于任何其他消息发送给服务端
3) 轮询AMF、HTTP通道
AMF、HTTP通道提供了简单的轮询机制,客户端可以用这个机制定期发送请求消息到服务端。当长期轮询或者流通道不能使用时,或者作为一个流通道的备用通道时候,轮询AMF、HTTP通道是适用的。
<!-- AMF with polling -->
<channel-definition id="samples-polling-amf"
type="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:8700/dev/messagebroker/amfpolling"
type="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>8</polling-interval-seconds>
</properties>
</channel-definition>
<!-- HTTP with polling -->
<channel-definition id="samples-polling-http"
type="mx.messaging.channels.HTTPChannel">
<endpoint url="http://{server.name}:8700/dev/messagebroker/httppolling"
type="flex.messaging.endpoints.HTTPEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>8</polling-interval-seconds>
</properties>
</channel-definition>
注意:这种模式中你也可以使用secure通道。
4) 长轮询AMF、HTTP通道
当其他更加有效率的实时机制不合适的时候,你可以使用AMF和HTTP通道的长期轮询模式来“推”消息到客户端。This mechanism uses the normal application server HTTP request processing logic and works with typical J2EE deployment architectures.这一机制的使用标准应用服务器的HTTP请求处理逻辑,并与典型的J2EE架构协同工作。
You can establish long polling for any channel that uses a non-streaming AMF or HTTP endpoint by setting the polling-enabled , polling-interval-millis , wait-interval-millis , and client-wait-interval-millis properties in a channel definition; for more information, see Simple channels and endpoints .您可以为任何通道建立长期轮询来使用相应端点,需要设置一下参数:polling-enabled、polling-interval-millis、wait-interval-millis、client-w ait-interval-mills。有关wait-interval-millis的更多内容请参考Blazeds文档。
<!-- Long polling AMF -->
<channel-definition id="my-amf-longpoll" class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://servername:8700/contextroot/messagebroker/myamflongpoll"
class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>0</polling-interval-seconds>
<wait-interval-millis>60000</wait-interval-millis>
<client-wait-interval-millis>3000</client-wait-interval-millis>
<max-waiting-poll-requests>100</max-waiting-poll-requests>
</properties>
</channel-definition>
分享到:
相关推荐
- 配置通道:BlazeDS支持多种通信协议,如HTTP、HTTPS和WebSocket。默认配置使用HTTP通道。如果需要启用其他通道,需在`<channels>`元素下添加相应配置。 3. **创建Flex客户端** - 使用Flex Builder或命令行工具...
这个配置文件定义了服务端点、消息通道、数据源等。此外,还可以通过flex-config.xml文件定制Flex客户端的行为。 **使用Blazeds:** 1. **创建Flex客户端**:在Flex Builder或IntelliJ IDEA等IDE中,创建一个新的...
3. **配置 BlazeDS**:编辑`/WEB-INF/flex/blazeds-config.xml`配置文件,定义远程服务和消息通道。这一步涉及设置AMF端点、服务命名以及数据转换策略。 4. **创建Flex项目**:在Flex Builder或IntelliJ IDEA等IDE...
客户端和服务器之间的通信通过通道实现,这些通道在Blazeds服务端拥有对应的端点。客户端利用Flex框架与服务器端通信,而Flex SDK和rpc.swc组件库提供了包括RemoteObject、HTTPService、WebService、Producer、...
- **Config Files**: 比如services-config.xml,这是Blazeds的核心配置文件,定义了服务端点、消息通道和数据源等。 要开始使用Blazeds,你需要: 1. 配置Flex Builder或IntelliJ IDEA等IDE,使其与Blazeds SDK...
2. **配置BlazeDS通道**:确保Flex前端正确配置了与服务器端通信所需的通道。 3. **实现文件上传逻辑**:在Flex端编写代码来读取文件并将其发送到服务器端。 4. **服务器端处理**:在服务器端编写代码来接收文件并...
在网络层面上,BlazeDS使用通道(Channels)和端点(Endpoints)来管理客户端和服务端之间的数据传输。通道定义了消息的格式、网络协议和解析方式,确保了不同环境下的通信兼容性。 总的来说,BlazeDS是一个强大的...
- `FlexServices-context.xml`: 这个文件用于配置BlazDS的服务,如数据源、消息通道等。 - `Service-config.xml`: 定义了RemotingDestination和服务端点,以及与之关联的Java类。 - `*.java` 文件:这些是Java...
5. Channels and Endpoints:通道和端点是BlazeDS中数据传输的关键。通道定义了数据在网络上传输的方式,包括消息格式、网络协议、解析策略和目标。通过设置不同的通道和端点,BlazeDS能够适应不同的网络环境和通信...
5. **Channels and endpoints**:通道和端点是BlazeDS数据传输的核心。通道定义了消息在网络上的传输方式,包括消息格式、协议、解析和目标。端点则指定了数据传输的网络地址。 在开发BlazeDS应用程序时,开发者...
6. **部署和配置**:Flex BlazeDS项目需要在服务器上部署BlazeDS服务,并配置相应的端点和通道。Tomcat、Jetty等Servlet容器通常用于部署BlazeDS服务,通过web.xml文件配置服务和AMF通道。 7. **调试和测试**:在...
在实际开发中,开发者可以使用Flex Builder或者IntelliJ IDEA等工具,配合BlazeDS的配置文件services-config.xml来定义服务端点和消息通道。通过ActionScript接口,可以在Flex客户端直接访问Java对象和方法,实现...
##### Channels and Endpoints(通道和端点) 通道负责封装消息格式、网络协议、解析策略及应用代码,确保消息在网络上传输的有序性和一致性。端点则在服务器端解析消息,实现与Java服务的有效交互。 综上所述,...
3. **BlazeDS配置**:学会设置BlazeDS服务,配置数据通道和服务端点。 4. **数据绑定**:了解Flex中的数据绑定机制,如何将视图组件与数据模型关联起来。 5. **远程调用和消息监听**:掌握如何通过BlazeDS进行远程...
在Java应用服务器(如Tomcat)上部署BlazeDS,需要配置`services-config.xml`文件,定义数据源、通道设置和消息目的地。同时,需要在Flex客户端创建对应的代理类,以便访问Java服务。 5. **建立通信链路** - **...
**外部化通道ID**:可以通过配置属性来外部化通道ID,使其更易于管理和维护。 #### 四、使用AMF与Spring MVC RESTful端点通信 **介绍**:本节介绍如何使用AMF协议与Spring MVC的RESTful服务进行交互。 **使用...
通过定义服务通道和服务端点,Flex可以透明地访问Java对象和方法。 2. **Message Brokering**:提供了发布/订阅消息模型,使多个Flex和Java组件可以异步交换数据。此功能基于HTTP长轮询、HTTP流或WebSocket等技术,...
1. **配置BlazDS**:首先,需要在服务器上部署BlazDS,并在web.xml中进行配置,设置服务端点和服务映射。 2. **创建Spring Bean**:在Spring配置文件中定义需要暴露给Flex的业务服务bean,以及数据源、事务管理器等...
6. **services-config.xml**:这个文件是Blazeds服务配置的核心,用于定义消息通道、服务端点、数据源等,是实现Flex和Java间通信的具体配置。 7. **搭建过程**:首先下载Blazeds的核心文件,解压缩后将文件覆盖到...