【发布时间】:2010-03-16 08:00:42
【问题描述】:
我们已将 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 中的错误吗?如果不是,我们如何让它使用正确的协议?
【问题讨论】:
-
你能分享你改变频道/发送数据的弹性代码吗?
-
这个问题你解决了吗?我正在查看相同的配置,并希望避免此问题。
-
我从未找到解决此问题的方法。我们真的只是想启用这两个通道,以便我们可以使用相同的构建进行性能和回归测试。 Flex 客户端将使用 AMF,而 JMeter 将使用 AMFX 访问我们的服务。但最终我们不需要这样做,因为我们最终扩展了 JMeter(通过使用 java BlazeDS 库)能够序列化和反序列化 AMF 数据以进行性能测试。
标签: java apache-flex blazeds