我们已将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中的错误吗?如果不是,我们怎么能让它使用正确的协议?
答案 0 :(得分:1)
我的轶事经验是,Flex客户端可以在服务器上使用一个且仅一个通道。它不仅仅是AMF / XML限制,还适用于流媒体与轮询频道。