为Flex / BlazeD设置多种通道类型(AMF / AMFX)

时间:2010-03-16 08:00:43

标签: java flex blazeds

我们已将Flex客户端配置为有两个通过BlazeDS调用我们服务的渠道。

一个通道配置为使用AMFChannel,另一个通道配置为HTTPChannel。这是services-config.xml

          <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
                <endpoint url="http://{server.name}:{server.port}/{context.root}/data/messagebroker/amf"
        class="flex.messaging.endpoints.AMFEndpoint" />
            <properties>
               <polling-enabled>false</polling-enabled>
            </properties>
         </channel-definition>
         <channel-definition id="my-amfx" class="mx.messaging.channels.HTTPChannel">
            <endpoint url="http://{server.name}:{server.port}/{context.root}/data/messagebroker/amfx"
        class="flex.messaging.endpoints.HTTPEndpoint" />
            <properties>
               <polling-enabled>false</polling-enabled>
            </properties>
         </channel-definition>

我们的Flex客户端编写为使用AMF或AMFX,具体取决于我们如何配置它。问题是虽然客户端可以在通道之间切换,但在尝试通过AMFX调​​用服务时会发送AMF二进制有效负载(期望XML)。 有趣的是,我们可以编写services-config.xml来单独使用AMF或AMFX,但Flex似乎不想让我们同时使用它们。 这是Flex中的错误吗?如果不是,我们怎么能让它使用正确的协议?

1 个答案:

答案 0 :(得分:1)

这似乎是Flex

的限制

我的轶事经验是,Flex客户端可以在服务器上使用一个且仅一个通道。它不仅仅是AMF / XML限制,还适用于流媒体与轮询频道。