Hi Safrizal, I only just found your reply now as it got buried in the thread and I was off trying to fic everything else.
Back on the server side of things now and want to implement your solution. I have to use MX:RemoteObject as my existing backend is BlazeDS 4.0.1. I would like to keep using the sessions as that is what is already implemented. I am using CRUX with Apache Royal. How do I implement your solution when using serviceHelper.executeServiceCall? I have noticed using CharlesProxy that the first ping call from Royal is not the same as from an AIR client. The AIR client is sending a POST AMF Message Operation 5. But the ApacheRoyal is just sending the following with no body: OPTIONS /SERVER/messagebroker/amf.txt HTTP/1.1 Host: XXXXXXX8400 Pragma: no-cache Cache-Control: no-cache Accept: */* Access-Control-Request-Method: POST Access-Control-Request-Headers: content-type Origin: http://localhost:3000 User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36 Sec-Fetch-Mode: cors Referer: http://localhost:3000/ Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9 I am sure that this is the problem, but I don't know how to fix it. Any ideas? David On 2021/02/10 16:49:47, Safrizal <[email protected]> wrote: > do not use cookies, use stateless session. > > if you still have to use cookies, you should check blazeDS > AppendToGatewayUrl message, > after command message PING / Operation 5, executed. > > check message.headers, if name == 'AppendToGatewayUrl' and mustUnderstand == > true, > save jsession value. > > and use jsession value, > > requestQueue.push( > { > url: url + jsession, > targetURI: command, > responder: responder, > args: params > } > ); > > then our friendly message, "Detected duplicate HTTP-based FlexSessions, > generally due to ..." gone, and no double call. > > but, if you want to use stateless session, ignore jsession, then you can > force null to royale header. > > protected function setRoyaleClientIdOnMessage(message:IMessage):void > { > //var id:String = RoyaleClient.getInstance().id; > //trace("[*setRoyaleClientIdOnMessage] RoyaleClient.getInstance().id: " > + RoyaleClient.getInstance().id); > //message.headers[AbstractMessage.ROYALE_CLIENT_ID_HEADER] = (id != > null) ? id : RoyaleClient.NULL_ROYALECLIENT_ID; > > message.headers[AbstractMessage.ROYALE_CLIENT_ID_HEADER] = > RoyaleClient.NULL_ROYALECLIENT_ID; > } > > and there is no "Detected duplicate HTTP-based FlexSessions, ...", no double > call. > > use jwt or paseto or macaroons or others.( I use JPaseto) > and of course, you should aware about session housekeeping, > caused by too many BlazeDS flexSessions creation, hdr(DSId) always null. > > i use JS::RemoteObject, because MX::RemoteObject is very "mbulet" (in > Indonesian, meanings Complicated), > there are Channels, Channelset, Operation, AsyncToken and Responders, just > to call a function. > > i build latest royale-asjs develop branch using maven, and code with VSCode. > > > > Salam, > > > Rizal > > > > > -- > Sent from: http://apache-royale-users.20374.n8.nabble.com/ >
