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/
> 

Reply via email to