-
Notifications
You must be signed in to change notification settings - Fork 115
Description
Hi,
It seem there is a bug with mx:RemoteObject and PHPSESSID.
When using it for first time, it should memorise the PHPSESSID sended by remote host. Then using it another time, it should send this PHPSESSID in the request header.
I took exemple in
examples\mxroyale\RemoteObjectAMFTest
I modify it to call my test login service, and clic on sendLogin button.
Here is network trace :
On first packet, then Request has no PHPSESSID because it's first use
On second packet (and others if clic again on sendLogin button) there is no PHPSESSID in Request header.
So the server send each time another new PHPSESSID thinking it's a new client
Now here is same service with Flex sdk4.6.0
Here is the code used :
<j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:j="library://ns.apache.org/royale/jewel"
xmlns:js="library://ns.apache.org/royale/basic"
xmlns:mx="library://ns.apache.org/royale/mx"
>
<fx:Style source="../../main/resources/styles.css"/>
<fx:Script>
<![CDATA[
import mx.rpc.AsyncToken;
import mx.rpc.Responder;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import org.apache.royale.events.Event;
private function onFault(evt:FaultEvent):void
{
trace("[onFault]", evt);
}
// Test AsyncToken - Responder
private var token:AsyncToken;
private var responder:Responder;
private function sendEcho(evt:MouseEvent):void
{
var o:Object = new Object();
o.login = "demo";
o.password = "demo";
responder = new Responder(onEchoResult, onFault);
token = serviceResp.siteLogin(o);
token.addResponder(responder);
trace(token);
}
private function onEchoResult(event:ResultEvent):void
{
trace("[onEchoResult]", event);
result_txt.text = event.result as String;
}
]]>
</fx:Script>
<fx:Declarations>
<mx:RemoteObject id="serviceResp" fault="onFault(event)"
endpoint="http://gateway.XXXXXX.com/gateway.php"
source="aadmin"
destination="amfphp"/>
</fx:Declarations>
<j:beads>
<js:ClassAliasBead />
</j:beads>
<j:valuesImpl>
<js:SimpleCSSValuesImpl />
</j:valuesImpl>
<j:initialView>
<j:ApplicationResponsiveView>
<j:VGroup width="400">
<j:Button text="Send LOGIN" click="sendEcho(event)"/>
<j:Label id="result_txt"/>
</j:VGroup>
</j:ApplicationResponsiveView>
</j:initialView>
</j:Application>
Remote server is using AMFPHP (I can give remote URL to test if necessary in private)
Regards


