我目前正在将一个大型项目从Flex 3迁移到Flex 4.5。我遇到的问题是网络通信:我们使用的是嵌入在AMF3中的自定义协议,但似乎flash.net.NetConnection发送的消息无法读取。
我们的Java后端使用一些BlazeDS类来反序列化消息,即flex.messaging.io.amf.AmfMessageDeserializer.AmfMessageDeserializer,并且我可以用Charles Web Proxy监视网络流量并解码AMF3。下面这个非常简单的代码可以在Flex 3.5中编译时发送可由Charles解码的消息,但在Flex 4.5中无法解码(我得到“Failed to parse data (com.xk72.amf.AMFException: Unsupported AMF3 packet type 17 at 26)”)。
我在本地设置了一个apache服务器来进行测试,端口是localhost:80。
有人在Flex 4.5中使用NetConnection时遇到过反序列化问题吗?你们是如何解决的?
谢谢,
Daniel
我们的Java后端使用一些BlazeDS类来反序列化消息,即flex.messaging.io.amf.AmfMessageDeserializer.AmfMessageDeserializer,并且我可以用Charles Web Proxy监视网络流量并解码AMF3。下面这个非常简单的代码可以在Flex 3.5中编译时发送可由Charles解码的消息,但在Flex 4.5中无法解码(我得到“Failed to parse data (com.xk72.amf.AMFException: Unsupported AMF3 packet type 17 at 26)”)。
import mx.controls.Alert;
private function init():void
{
var pdl : Dictionary = new Dictionary();
var connection : NetConnection = new NetConnection();
connection.connect("http://localhost");
var responder : Responder = new Responder(result);
connection.call("net", responder, pdl);
}
private function result(pdl : Object) : void {
Alert.show("coucou", "hello");
}
我在本地设置了一个apache服务器来进行测试,端口是localhost:80。
有人在Flex 4.5中使用NetConnection时遇到过反序列化问题吗?你们是如何解决的?
谢谢,
Daniel
call
,而不是字典 - 这很容易实现,因为我们使用了从字典派生的类,我只需要让它从对象派生而来(我们从未使用过弱键)。 - Daniel Kitachewsky