对BlazeDS感到失望......有这些缺点吗?

时间:2010-01-27 21:29:40

标签: flex json blazeds

我曾经使用soap webservices将图表数据传输到我的flex应用程序,但最近由于性能,方便的输入等原因而切换到使用BlazeDS。

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

  • 用于与flex进行通信的DTO的扩散。*(使用JSON,我只是使用JsonConfig根据需要排除属性。)
  • 难以调试(而JSON是好的'明文)。
  • 没有粘性会话的负载平衡问题。

其他人遇到BlazeDS的这些问题? BlazeDS值得麻烦吗?

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

1 个答案:

答案 0 :(得分:6)

我不会放弃使用远程处理。远程处理的性能将远远优于JSON。请记住,ActionScript没有解码JSON的方法,因此您需要使用AS库,它比播放器内置的任何内容都要慢。你最好使用XML而不是JSON。

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

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

http://www.charlesproxy.com/

你似乎也在选择BlazeDS和任何非遥控器。你有更多的选择。 BlazeDS只是Adobe提供的一种远程实现。他们也有一个商业广告。还有许多开源远程项目可供使用。我们使用一个很棒的C#叫做Fluorine。开源Java选项是Red5和OpenAMF,但我认为还有其他选项。

http://red5.org/

http://openamf.com/

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