【问题标题】:Setting up multiple channel types (AMF/AMFX) for Flex/BlazeDs为 Flex/BlazeD 设置多种通道类型 (AMF/AMFX)
【发布时间】: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


【解决方案1】:

这似乎是 Flex 的限制

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2014-04-21
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多