我曾经使用soap webservices将图表数据传输到我的flex应用程序,但最近由于性能,方便的打字等原因切换到使用BlazeDS.
我正在考虑切换到使用JSON(就像我在应用程序的其他部分中所做的那样),原因如下:
用于与flex.*进行通信的DTO的扩散(使用JSON,我只是使用JsonConfig根据需要排除属性.)
难以调试(而JSON是好的'明文).
没有粘性会话的负载平衡问题.
有人用BlazeDS遇到这些问题吗?BlazeDS值得麻烦吗?
*
我可以使用Externalizable接口而不是不同的DTO,但它也很痛苦.
我不会放弃使用远程处理.远程处理的性能将远远优于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调用,其中内容恰好是二进制.