Yeah! we are in production with AMF for around 4 months without any issue! So RO works great for Royale ;)
this kind of problems where something is not working and is about a missed bead are very typical to Royale. Is the same with binding, states....but our brains ends taking that into account and soon you'll get to that process ;) Best Carlos El vie., 12 jul. 2019 a las 0:38, Greg Dove (<greg.d...@gmail.com>) escribió: > Yes, it should just work. There is at least one working example in the > examples set, and it should work with CommandMessage etc, without any of > the tweaks that you mentioned. > > Carlos is using amf extensively and it is currently in use in a production > app. > > Let me know if you see any bugs. > > cheers, > Greg > > > > On Fri, Jul 12, 2019 at 10:31 AM Frost, Andrew <andrew.fr...@harman.com> > wrote: > > > Oh it's that simple! > > > > Yes I just took a look, that does appear to go through it all and set > > everything up... > > > > Thank you! that saved us a bit of effort trying to update the compiler > ;-) > > > > > > > > > > -----Original Message----- > > From: Greg Dove <greg.d...@gmail.com> > > Sent: 11 July 2019 23:27 > > To: dev@royale.apache.org > > Subject: [EXTERNAL] Re: AMF and class aliases > > > > Hi Andrew, > > 'but I can't see anywhere that this list is accessed/used.' > > > > I think you need ClassAliasBead on your Application level, which will > > process all the definitions. > > > > > > > > > > > > > > On Fri, Jul 12, 2019 at 10:22 AM Frost, Andrew <andrew.fr...@harman.com> > > wrote: > > > > > Hi all > > > > > > We're trying to get a connection to work from our Royale-based code to > > > a LiveCycle back-end, and having to debug why the AMF message is > > > different between the Flex version and the Royale version (and trying > > > to work out why the server is rejecting our initial ping message..) > > > > > > One thing that's cropped up is that Flex embeds the name of the class > > > - or rather, the alias of this - when it writes the object: > > > [RemoteClass(alias="flex.messaging.messages.CommandMessage")] > > > > > > In Royale, this capability exists in the > > > AMFBinaryData.writeObjectVariant() method where it's using the > > > "localTraits", and we have: > > > var alias:String = classInfo.alias;// > > > getAliasByClass(instance.constructor > > > as Class); //<- @todo possible optimization: registerClassAlias > > > implementation stores in the classInfo Object, access directly > > > > > > The commented-out code does exactly what the new code does, which is > > > that it accesses the ROYALE_CLASS_INFO structure: > > > var classInfo:Object = > > > instance.ROYALE_CLASS_INFO; so to make this work, we've added an extra > > > section at the end of the ROYALE_CLASS_INFO for the CommandMessage (in > > > the generated JavaScript, so this is not a proper solution!): > > > > > > mx.messaging.messages.CommandMessage.prototype.ROYALE_CLASS_INFO = { > > > names: [{ name: 'CommandMessage', qName: > > > 'mx.messaging.messages.CommandMessage', kind: 'class' }] , alias: > > > 'flex.messaging.messages.CommandMessage' }; > > > > > > > > > Interestingly, the compiler looks at all the [RemoteClass(alias="")] > > > tags, and outputs a list of these in the main application's .js file: > > > TestBackend.prototype.info = function() { > > > return { "mixins": [mx.messaging.config.LoaderConfig, > > > mx.styles.StyleManagerImpl], > > > "remoteClassAliases": {"mx.messaging.messages.CommandMessage": > > > "flex.messaging.messages.CommandMessage", "org.apache.royale.net > > .remoting.messages.ActionMessage": > > > "flex.messaging.io.amf.ActionMessage", ... etc }, > > > "compiledLocales": ["en_US"]}}; > > > > > > but I can't see anywhere that this list is accessed/used. > > > > > > > > > So it looks to me like there's a discrepancy between how the compiler > > > is trying to make this work, and how the framework is expecting it to > > > be set up by the compiler. I was wondering if anyone know what had > > > been going on here and whether we should go for one way or another .. > > > and by preference I think, getting the compiler to add the alias > > > directly into the ROYALE_CLASS_INFO as that seems to be a better way of > > doing it I think..? > > > > > > > > > thanks > > > > > > Andrew > > > > > > p.s. we've had a few other issues with the AMF format, e.g. using > > > 'unknown length' and having this as +1 rather than -1; plus a single > > > message was being packaged as an array, whereas Flex/Flash Player > > > doesn't do that.. I'm wondering whether anyone has a problem if we try > > > to make the AMF messages generated from a Royale app to be as similar > > > as possible to how the Flash Player does it..?! > > > > > > > > > -- Carlos Rovira http://about.me/carlosrovira