从 AS3 Flash 应用程序中,我试图将 SharedObject 设置为我创建的自定义类的实例。据我所知,只要我调用sharedObject.setProperty("propertyName", myCustomClass)
Red5 就会抛出“加载类错误”,然后因为解码失败而断开客户端。
似乎很多其他人都遇到过类似的问题,但我发现的一切都是关于在服务器端创建 SharedObjects。我很难找到关于在客户端(在 Flash 应用程序中)创建 SharedObject 的很多内容。我只是使用开箱即用的“实时”Red5 应用程序。
这是我在 Red5 日志中看到的实际错误...
[ERROR] [NioProcessor-7] org.red5.io.amf.Input - Error loading class: com.striparcade.API.Player
[ERROR] [NioProcessor-7] org.red5.server.net.rtmp.codec.RTMPProtocolDecoder - Error decoding buffer
com.striparcade.API.Player
是有问题的自定义类。此类实现 IExternalizable,包括 writeExternal() 和 readExternal() 方法,以及对 registerClassAlias() 的调用。它似乎序列化就好了。
当然我也不必在 Red5 应用程序中重新创建这个类吗?Red5 不应该只获取数据并在需要时将其传递给其他客户端吗?知道我错过了什么吗?
顺便说一句,使用 Red5 1.0.1。我看到很多关于 AMF3 编码的错误都在 0.7 版左右得到修复。此外,现在只是在 Windows 7 机器上进行本地测试。