0

我曾经使用肥皂网络服务将图表数据传输到我的 flex 应用程序,但最近由于性能、打字方便等原因切换到使用 BlazeDS。

出于以下原因,我正在考虑切换到使用 JSON(就像我在应用程序的其他部分中所做的那样):

  • 用于与 flex.* 通信的 DTO 的激增(对于 JSON,我只是使用 JsonConfig 来根据需要排除属性。)
  • 难以调试(而 JSON 是很好的纯文本)。
  • 没有粘性会话的负载平衡问题。

还有其他人在使用 BlazeDS 时遇到这些问题吗?BlazeDS 值得麻烦吗?

*我可以使用 Externalizable 接口而不是不同的 DTO,但这也很痛苦。

4

1 回答 1

6

我不会放弃使用远程处理。远程处理的性能将比 JSON 好得多。请记住,ActionScript 没有解码 JSON 的方法,因此您需要使用一个 AS 库,该库比播放器内置的任何东西都慢。使用 XML 比使用 JSON 更好。

您应该能够通过将特定属性标记为瞬态来根据需要排除它们。ActionScript 有 [Transient] 元数据,这个想法来自 Java。我们用于远程处理的 C# 库具有瞬态支持。我敢肯定 BlazeDS 也是如此。

使用正确的工具可以轻松进行调试。你应该得到查尔斯。它提供了非常好的 AMF 请求和响应消息视图(假设您使用的是 HTTP 而不是 RTMP,我不知道 RTMP 调试)。

http://www.charlesproxy.com/

您似乎也在 BlazeDS 和任何非远程处理之间进行选择。你有更多的选择。BlazeDS 只是 Adob​​e 提供的一种远程实现。他们也有一个商业的。还有许多可用的开源远程处理项目。我们为 C# 使用了一种很棒的方法,称为 Fluorine。开源 Java 选项是 Red5 和 OpenAMF,但我认为还有其他选项。

http://red5.org/

http://openamf.com/

RTMP 和 HTTP 远程处理之间也有区别。您可以通过这两种协议中的任何一种将数据输入 Flex,并且每种协议都有其优点/缺点。我个人更喜欢 HTTP 远程处理,除非您绝对需要 RTMP 提供的功能(推送、流式传输)。HTTP 将更容易调试并且不应该有负载平衡器的问题——它只是内容恰好是二进制的 HTTP 调用。

于 2010-01-27T21:49:39.200 回答